Bash
在變數中使用星號
我想將所有文件分類到 bash 腳本中的一個新文件中。
例如,我的目錄中有三個文件: - file_a.txt - file b.txt - file(c).txt
當我編寫以下內容時,它可以正常工作:
cat "file"*".txt" >> out_file.bak
不,我想通過使用變數使其更加靈活/乾淨:
input_files="file"*".txt" cat $input_files >> out_file.bak
不幸的是,這不起作用。問題是為什麼?(當我回顯 input_files 並在終端中執行命令時,一切都很好。那麼為什麼它在 bash 腳本中不起作用?)
這取決於您何時要進行擴展:
定義變數時:
$ files=$(echo a*) $ echo $files a1 a2 a3 $ echo "$files" a1 a2 a3
當您訪問變數時:
$ files=a* $ echo "$files" a* $ echo $files a1 a2 a3
您
$
在cat
使用input_files
. 嘗試cat $input_files >> out_file.bak