Bash

在變數中使用星號

  • July 13, 2017

我想將所有文件分類到 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

引用自:https://unix.stackexchange.com/questions/378205