gpt4 book ai didi

linux - 如何在 linux shell 命令参数中获取下一个参数?

转载 作者:太空狗 更新时间:2023-10-29 12:24:55 25 4
gpt4 key购买 nike

我正在编写这个命令的 shell 脚本:

ovs-dump -i dpdkb2 [-d in] [-p tcp] [host 192.168.102.2][port 80] [-w /test.pcap]

对于'-w'选项,我想将'/test.pcap'处理成'$PWD/test.pcap',所以我这样写脚本:

for arg
do
case $arg in
-h | --help)
...
;;
-w )
echo "OPTARG=$OPTARG"
;;
?)
;;
esac
done

如我们所见,我想通过“$OPTARG”获取“/test.pcap”,但没有。所以我的问题是如何在我的脚本中获取“test.pcap”?

当我这样使用“getopts”时:

while getopts "w:h:" arg
do
case $arg in
-h | --help)
...
;;
-w )
echo "OPTARG=$OPTARG"
;;
?)
;;
esac
done

当我运行 sh ovs-dump -w a.pcap 时,出现错误:'/usr/local/share/openvswitch/scripts/gangyewei-ovs-dump: line 68: -w : 找不到命令'。

'echo "OPTARG=$OPTARG"' 的输出是 'OPTARG='。

也不行,怎么办?谢谢~

最佳答案

您可以这样编写脚本:

OPTIND=-1   # rest OPTIND if it has been set earlier

# start getopts loop
while getopts "w:h:" arg; do
case $arg in
h | --help)
...
;;
w)
echo "OPTARG=$OPTARG"
;;
?)

;;
esac;
done

然后运行它:

bash ./ovs-dump -w a.pcap

关于linux - 如何在 linux shell 命令参数中获取下一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44917687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com