【发布时间】:2017-12-30 13:43:54
【问题描述】:
如果我有一个名为 inventory.txt 的文本文件,如下所示:
america
mexico
england
如果我运行这段代码,它只会运行一次 america
while read line;
do
while getopts "U:D:" opt;
do
case $opt in
U)
SOURCE=$OPTARG
echo "SOURCE : $SOURCE"
SITEID=$line
echo "SITE : $SITEID " >&2
;;
D)
DEST=$OPTARG
echo "DESTINATION : $DEST" >&2
;;
esac
done
done < inventory.txt
如何对文本文件中的所有行执行此操作?
【问题讨论】:
-
您的外循环运行了 3 次迭代。但是内部循环只在第一个循环中执行。
-
多次运行
while getops循环似乎很奇怪,但如果你真的想这样做,你可以在外循环的顶部设置 OPTIND=1。
标签: bash shell loops sh getopts