我如何可以使用循环
问题描述:
从文本文件作为参数线如果我有叫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
我怎么能在我的文本文件中的所有行做到这一点?
答
第一解析参数,然后事后通过你的文件:
while getopts "U:D:" opt;
do
case $opt in
U)
SOURCE=$OPTARG
;;
D)
DEST=$OPTARG
;;
esac
done
while read line;
do
echo "SOURCE : $SOURCE"
SITEID=$line
echo "SITE : $SITEID " >&2
echo "DESTINATION : $DEST" >&2
done < inventory.txt
你外环经过3次迭代运行。但内循环只在第一个循环中执行。 –
似乎真的很奇怪,不止一次运行'getops'循环,但如果你真的想这样做,你可以在外循环的顶部设置OPTIND = 1。 –