如何在Bash中解析命令行参数?说,我有一个用这行调用的脚本:./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile或者这个:./myscript -v -f -d -o /fizz/someOtherFile ./foo/bar/someFile什么是分析这使得在每一种情况下(或两者的组合)的接受的方式$v,$f以及 $d将全部设置为true和$outFile将等于/fizz/someOtherFile?
4 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
getopt()
/ getopts()
是一个不错的选择。从这里偷来的:
这个迷你脚本中显示了“getopt”的简单使用:
#!/bin/bashecho "Before getopt"for ido echo $idoneargs=`getopt abc:d $*`set -- $args echo "After getopt"for ido echo "-->$i"done
我们所说的是允许使用-a,-b,-c或-d中的任何一个,但是-c后跟一个参数(“c:”表示)。
如果我们称之为“g”并试一试:
bash-2.05a$ ./g -abc fooBefore getopt-abc fooAfter getopt-->-a-->-b-->-c-->foo-->--
我们从两个参数开始,“getopt”拆分选项并将每个选项放在自己的参数中。它还添加了“ - ”。
添加回答
举报
0/150
提交
取消