我希望能够在代码执行之前搜索传递的参数,并根据输入的类型(例如文件)分配不同的变量名称。
如果我键入:
,我的程序可以正常工作./program input.txt -a
但是当我输入时:
./program -a input.txt
我的程序失败了。
它失败了,因为我的第一行代码是:
FILE=$1
并且-a
不是文件,所以我怎么能'跳过'这个,然后转到下一个传递的参数并检查它是否是文件?
感谢任何帮助,谢谢你提前。 :)
答案 0 :(得分:0)
嗯,你可以用这个轻松管理它:
if [[ "$1" =~ ^-a$ ]]; then
flag_a=1 # variable flag_a stores a -a was issued on arguments
shift # $2 is now $1
fi
另一方面,你可以使用更优雅的bash的getopts:http://wiki.bash-hackers.org/howto/getopts_tutorial