我試圖讓像這樣Linux shell中追加的可變參數命令
./jsdoc.sh file.js another.js maybe-a-third.js
我被陷在給定的參數生成JSDoc bash腳本如何傳遞的參數未知量到下一個殼命令。
(也,不知道如何檢查如果param存在,只是如果沒有exitst if [ -z ... ]
)
此代碼的工作長達兩個參數,但顯然不是正確的方式去了解它...
#!/bin/bash
# would like to know how to do positive check
if [ -z "$1" ]
then echo no param
else
d=$PWD
cd ~/projects/jsdoc-toolkit/
# this bit is obviously not the right approach
if [ -z "$2" ]
then java -jar jsrun.jar app/run.js -a -t=templates/jsdoc/ $d/$1
else java -jar jsrun.jar app/run.js -a -t=templates/jsdoc/ $d/$1 $d/$2
fi
cp -R out/jsdoc $d
fi
任何其他指示我怎麼能實現這一點,將不勝感激。
編輯:根據@ skjaidev的答案更新腳本 - 快樂的日子;)
#!/bin/bash
d=$PWD
for i in $*; do
params=" $params $d/$i"
done
if [ -n "$1" ]; then
cd ~/projects/jsdoc-toolkit/
java -jar jsrun.jar app/run.js -a -t=templates/jsdoc/ $params
cp -R out/jsdoc $d
fi
爲了安全,使用'「$ @」'而不是'$ *'。我也使用'if(($#> 0))' - 「$#」是參數的數量。 –