[英]Pipe arguments into bash from terminal
假設我有腳本convertToPNG.sh
convert $1 output.png
我可以通過終端$ converToPNG img.jpg
調用它。
但是,如果我只有字符串"convert $1 output.png"
,而我想通過在一行中全部傳遞一個參數來執行它,該怎么辦?
我不想將字符串另存為文件,然后使用傳入的參數運行腳本。沒有一種更簡單的方法來將參數傳遞給$1
,
您應該使用eval
。 它需要一個字符串並執行它。 例如:
eval "convert $1 output.png"
但是請注意,它會執行任何字符串,因此您應該仔細驗證$1
參數,否則任何人都可以在系統中執行任何命令。
編輯:如果您要用img.gif替換每個$1
,請嘗試以下操作(單個quopt:
bash -c 'convert $1 output.png' 'ignore' 'img.gif'
那是一個奇怪的用例,但是如果您確實希望可以定義函數並將其參數全部傳遞給一行:
$ myconvert(){ convert "$1" output.png; }; myconvert whatever.gif
whatever.gif
是要轉換的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.