最近,我在第7章的“读取用户输入”一节中阅读了《学习bash Shell》第3版。当我看到下面的代码时,
echo 'Select a directory:'
done=false
while [ $done = false ]; do
do=true
num=1
for direc in $DIR_STACK; do
echo $num) $direc
num=$((num+1))
done
echo -n 'directory? '
read REPLY
if [ $REPLY -lt $num ] && [ $REPLY -gt 0 ]; then
set - $DIR_STACK
#statements that manipulate the stack...
break
else
echo 'invalid selection.'
fi
done
set - $DIR_STACK
的确切含义是什么?
set
命令,您必须阅读Bash手册页面,因为它是一个内部命令。 - Some programmer dudeset -- $DIR_STACK
。这本身就是一种非常糟糕的做法。(顺便说一下,for direc in $DIR_STACK
也是如此。) - Charles Duffy