使用getopt时,"for i"没有"in [sequence]"结尾

sev*_*ryn 6 bash shell getopt

我找到了在shell中使用getopt命令的示例脚本.

#!/bin/bash
args=$(getopt ab $*)
set -- $args
for i;
do
    case "$i" in
    -a)shift; echo "it was a";;
    -b)shift; echo "it was b";;
esac;
done
Run Code Online (Sandbox Code Playgroud)

它运作良好,但我不明白变量$ i指派在哪里.怎么知道它必须遍历$ arg.你能解释一下吗?

d33*_*tah 11

如图所示这里,for默认为$@如果没有in seq给出.该for i分配您的$i变量.