Linux
我的shell腳本中的sh問題
我正在瀏覽 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 as
sh hello.sh
將sh
獨立於 shebang 和目前 shell 讀取。