如何在Bash中解析命令行参数?

如何在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


慕标5832272
浏览 1618回答 4
4回答

牧羊人nacy

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”拆分选项并将每个选项放在自己的参数中。它还添加了“ - ”。
打开App,查看更多内容
随时随地看视频慕课网APP