簡體   English   中英

用變量回顯單行bash腳本

[英]echo a one-liner bash script with variables

我想這樣做:

i="1"; echo -e '#!/usr/bin/env bash\nmyprogram -i "input_${i}.txt"'

並將其傳遞給作業調度程序。

但是,這並不會將變量i替換為其值。 相反,我得到了這個:

#!/usr/bin/env bash
myprogram -i "input_${i}.txt"

我玩了一些選項-e echo和單引號/雙引號但是無法使它工作。 例如,我得到了這個:

i="1"; echo -e "#!/usr/bin/env bash\nmyprogram -i \"input_${i}.txt\""
-bash: !/usr/bin/env: event not found

我的bash版本是4.1.2。

嘗試這個:

i="1"; echo -e '#!/usr/bin/env bash\nmyprogram -i '"\"input_${i}.txt\""

您可以同時echo單引號和雙引號字符串。

嘗試逃避感嘆號:

\\! 應該沒問題,也不會被bash讀作“事件”。

i="1"; echo -e '#!/usr/bin/env bash\nmyprogram -i "input_'"${i}"'.txt"'

基本上,使用單引號,直到您需要插值,然后關閉單引號,打開雙引號,添加插值,關閉雙引號,重新打開單引號,並完成字符串。 在shell中,引號不分隔單詞; 他們只是改變了他們之間的一個詞的部分的解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM