我一直在尋找這個問題的答案。我有一個數組在我的shell腳本,但是當我運行它,我得到這個錯誤:"(" unexpected
爲什麼我的數組對我的shell腳本不正確?
我在做什麼錯在這裏:
array=(1 2 3 4 5)
我使用Ubuntu 11.10
我一直在尋找這個問題的答案。我有一個數組在我的shell腳本,但是當我運行它,我得到這個錯誤:"(" unexpected
爲什麼我的數組對我的shell腳本不正確?
我在做什麼錯在這裏:
array=(1 2 3 4 5)
我使用Ubuntu 11.10
您與/bin/sh
,不/bin/bash
運行腳本。 sh
中沒有陣列。
[email protected] ~$ /bin/sh
$ a=(1 2 3)
/bin/sh: Syntax error: "(" unexpected
你在用bash嗎?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.
$ array=(1 2 3 4 5)
$ echo ${array[1]}
2
$
而且有時是因爲額外的空間:
array = (1 2 3 4)
是不對的。它應該是:運行腳本時按以下
array=(1 2 3 4)
嘗試指定字bash
:
$ bash script.sh
是的,這工作正常。但是,該腳本由於某種原因未運行。 –
奇怪......當我將整個腳本複製粘貼到終端時,它可以正常工作。爲什麼不能用作外部文件? –
@ user1068559您可以嘗試使用sh --verbose -x script.sh來運行腳本,並查看它實際上打破的位置http://tldp.org/LDP/abs/html/arrays.html可能也會對您有幫助 – jackdoe