[英]How to take multiple files in terminal in BASH shell scripting
...... 這個問題就解決了。
目前 $I 正在引用循環的迭代,因此 1,2,3.... grep 找不到這些文件,因此出現錯誤。
有兩種方法可以解決這個問題。 $@ 包含傳遞給腳本的參數,因此您可以嘗試:
grep "enthalpy new" "$@" >> step.txt
或者,如果您想遍歷每個參數/文件,請嘗試:
for fil in "$@"
do
grep "enthalpy new" "$fil" >> step.txt
done
要輸入文件名或任何其他變量,您必須使用 $1 $2 $3 例如作為腳本的輸入。 如果您將它們放在特定目錄中(比如說./output)並在父目錄中調用不帶變量的腳本,它會更靈活 - 那么它會在放置多少文件方面更加靈活,沒有確定變量並捕獲代碼注入的輸入 - 代碼應如下所示:
for i in $(find ./output -name '*.out')
do
grep "enthalpy new" $i >> step.txt
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.