[英]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.