由于某种原因,这个脚本可以在最后使用所有'echo',但是没有它们,$ wall是一个空字符串。这似乎很奇怪的行为。zsh回声的副作用?
#!/bin/zsh
if [ ! -n "$1" ] ; then
files=(~/pictures/backgrounds/*jpg)
else
while [ $1 ] ; do
files+=(`echo $1/*jpg`)
shift
done
fi
echo $files
N=${#files}
echo $N
((N=RANDOM%N))
echo $N
wall=${files[$N]}
echo $wall
cp $wall ~/wall.jpg
如果将N硬编码为1并删除回显会发生什么?同样的问题?换句话说,你能以这种方式失败的最短代码是什么? – barrycarter 2010-06-02 00:33:45