我想合并我在函式呼叫時創建的多個檔案,因為我在 Main 上呼叫了三次函式
aa_file
aa
bb_file
bb
cc_file
cc
最終輸出
final_file
aa
bb
cc
function cal () {
# Some operation
while true; do
read -p "would you like asignment ? on ${var} " yn
case $yn in
[Yy]* ) arr_var =("$var"); echo "$var" > $var_file;
[Nn]* ) break;;
* ) echo "Please answer yes or no.";;
esac
# Some operation
done
}
# Main
eval arr_var=()
cal "aa"
cal "bb"
cal "cc"
如何制作一個可以合并所有檔案的函式
for i in "${arr_var[@]}"
do
cat $i_file $(i 1)_file > final_file
done
因為,當我只呼叫兩次函式 cal 時,我想要
# Main
eval arr_var=()
cal "aa"
cal "cc"
final_file
aa
cc
uj5u.com熱心網友回復:
請更正您的問題,因為很難找到您想要的內容。
但是,您可以多次呼叫一個函式,并且可以將其輸出合并到另一個檔案中。像這樣:
for f in `seq 1 5`
do
cat ${f}
done > output_file
或者甚至像這樣:
(
cal "aa"
cal "bb"
cal "cc"
) > output_file
在您的版本中,final_file每次迭代都會被覆寫:
for i in "${arr_var[@]}"
do
cat $i_file $(i 1)_file > final_file
done
要么改變>到>>或移動>外回圈。
uj5u.com熱心網友回復:
如果你使用 bash,你可以這樣做:
arr_var=(aa bb cc)
cat "${arr_var[@]/%/_file}" > final_file
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378760.html
