シェル スクリプトで空の配列を宣言しようとしていますが、エラーが発生しています。
#!/bin/bash
list=$@
newlist=()
for l in $list; do
newlist+=($l)
done
echo "new"
echo $newlist
私がそれを実行すると、私は得るtest.sh: 5: test.sh: Syntax error: "(" unexpected
bash で実行します。
bash test.sh
エラーを見ると、実際にダッシュで実行しているようです:
> dash test.sh
test.sh: 5: test.sh: Syntax error: "(" unexpected
今回だけはおそらくそれへのリンク (/bin/sh -> /bin/dash) を使用しました。
配列が空の場合は、次のようにします。
NEWLIST=
次の方法で確認できます。
if [ $NEWLIST ] ; then
# do something
fi
空でない配列宣言は次のようになります。
NEWLIST=('1' '2' '3')
処理中に配列を埋めるには:
ARRAY=("$(find . -name '*.mp3')")
お役に立てれば