Linux 在帮助选项中包含子参数以便明智地执行?
我正在写一个脚本,可以选择一个文件和打印特定的内容。比如说,Linux 在帮助选项中包含子参数以便明智地执行?,linux,bash,shell,unix,scripting,Linux,Bash,Shell,Unix,Scripting,我正在写一个脚本,可以选择一个文件和打印特定的内容。比如说, san#./script.sh Expected Usage : ./script.sh --file1 --dns (这里它检查文件1,搜索dns名称并打印。基本上,参数下有子参数) 我尝试了以下单个参数/选项: options=$@ arguments=($options) index=0; for argument in $options do index=`expr $index + 1`; case
san#./script.sh
Expected Usage : ./script.sh --file1 --dns
(这里它检查文件1,搜索dns名称并打印。基本上,参数下有子参数)
我尝试了以下单个参数/选项:
options=$@
arguments=($options)
index=0;
for argument in $options
do
index=`expr $index + 1`;
case $argument in
-a | --fun1 ) run_function1 ;;
-b | --fun2 ) run_function2 ;;
-c | --fun3 ) run_function3 ;;
esac
done
exit;
[ ${1} ] || helpinfo
任何一个都可以建议使用双参数(子选项)
预期目标选项:
./script.sh
OPTIONS : ./script.sh -h
./script --fun1 stackoverflow
microsoft
Google
--fun2 Yahoo
基本上,每个函数将查看一个文件。我已经研究了getopt或getopts,但它没有long选项(
--long
不可能,相反,我们只能使用-l
)。但同样不确定子参数。有谁能帮上忙吗?这里有一个关于参数解析(包括您所谓的“子选项”)的详细常见问题解答:我不确定我是否正确理解您的意思。。。但让我们试试我的运气:)
重复:这不是我主要是寻找子选项。不仅仅是短/长。我在我的场景中找不到太多要实现的细节。你能给我一个以上细节的示例代码吗?谢谢
$ cat a.sh
#!/bin/bash
function fun1 {
echo "fun1 '$1'"
}
function fun2 {
echo "fun2 '$1'"
}
function err {
echo "No function has been specified"
exit 1
}
FUNCTION=err
while [ $# -gt 0 ]; do
case "$1" in
-a | --fun1 ) FUNCTION=fun1 ;;
-b | --fun2 ) FUNCTION=fun2 ;;
*) $FUNCTION "$1" ;;
esac
shift
done
$ ./a.sh --fun1 one two -b three
fun1 'one'
fun1 'two'
fun2 'three'