Linux

我的shell腳本中的sh問題

  • December 22, 2019

我正在瀏覽 shell script book,但在數組部分,我被卡住了。當我聲明數組並執行腳本時:

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不工作,請。我是shell中的新手!

這樣做的原因是 Bourne Shell( sh) 不支持數組(不是你想用的這種方式)。所以不要使用sh, 和bash, ksh,zsh等一起使用。

您可以在此答案中找到更多資訊

Bourne shell 或 POSIX sh 語言規範不支持數組。或者更確切地說,它們只有一個數組:位置參數 ( $ 1, $ 2,$@,所以每個函式也有一個數組)。

f run assh hello.shsh獨立於 shebang 和目前 shell 讀取。

引用自:https://unix.stackexchange.com/questions/558460