tôi đang cố gắng để có được một kịch bản bash mà tạo ra JSDoc cho các thông số cho như thế nàylinux shell thêm vào thông số biến chỉ huy
./jsdoc.sh file.js another.js maybe-a-third.js
Tôi đang bị mắc kẹt trên làm thế nào để vượt qua một số lượng chưa được biết các thông số để vỏ tiếp theo chỉ huy.
(còn, không biết làm thế nào để kiểm tra xem param tồn tại, chỉ khi không exitst if [ -z ... ]
)
Mã này làm việc cho đến hai thông số, nhưng rõ ràng không phải là cách đúng đắn để đi về nó ...
#!/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
Bất kỳ con trỏ nào khác về cách tôi có thể đạt được điều này sẽ được đánh giá cao.
Edit: Cập nhật kịch bản theo câu trả lời @ skjaidev của - hạnh phúc ngày;)
#!/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
Sử dụng '" $ @ "' thay vì '$ * 'để đảm bảo an toàn. Tôi cũng sẽ sử dụng 'if (($ #> 0))' - "$ #" là số đối số. –