シェルスクリプトの本を読んでいますが、配列の部分で詰まっています。配列を宣言するとき次のようにスクリプトを実行します。:
sh hello.sh
ZSHでもエラーが表示されます。
one.sh: 2: Syntax error: "(" unexpected
私が走るときこれは./hello.sh
魅力のように動作します。
これはスクリプトです。
#!/bin/bash
myarr=(on two three four five)
echo "${myarr[1]}"
exit 0
ノート:なぜ動作しないのか教えてくださいsh
。私はシェルを初めて使用します!
答え1
その理由は、Bourne Shell(sh
)が配列をサポートしていないからです(望む方法ではありません)。したがって、保持などを使用しないsh
でください。bash
ksh
zsh
詳細は以下で確認できます。この回答
BourneシェルまたはPOSIX sh言語仕様では配列はサポートされていません。または、位置パラメータ($ 1、$ 2、$ @、つまり関数ごとの配列もあります)という1つの配列しかありません。
f run as は shebang と現在のシェルとは独立してsh hello.sh
読み取られます。sh