어떤 이유로이 스크립트는 모든 'echo'가 끝나면 작동하지만 $ wall은 빈 문자열입니다. 이것은 정말 이상한 행동처럼 보입니다. RANDOM%N
가 제로가 발생할 수 있으며, zsh을 배열 인덱스 대신 RANDOM%N+1
를 사용해야합니다 1. 시작하기 때문에zsh echo의 부작용?
#!/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