2014-05-09 76 views
-1

當我運行下面的腳本:的Unix腳本 - 一個字符串的第一個字母

#!/bin/bash 
test="abcdr" 
test2=${test:0:2} 
echo $test2 

我得到的錯誤:script: 3: script: Bad substitution

但後來我在終端上鍵入完全相同的命令,它沒有正常工作任何錯誤

爲什麼會發生這種情況,我該如何解決?

+0

你是如何運行你的腳本? '/ bin/bash'中是'bash'嗎? (用'哪個bash'檢查)。 – fedorqui

+0

是的,我在/ bin/bash – user3597432

+0

你如何運行腳本? – choroba

回答

0

您正在運行腳本sh,與bash不一樣。它不支持這種類型的替換。 與

bash script 

運行腳本,或者確保它的可執行文件(chmod u+x /path/to/script),然後直接運行

/path/to/script 

如果當前目錄恰好是/path/to,你可以只輸入

./script 
0

@ user3597432我在該腳本內容中看不到任何問題,主要是這個問題可能與bash版本有關,或者腳本如何執行貢獻。如果你不能通過bash終端解決,你可以嘗試korn shell,如果可能的話更方便。只需將ksh bin和腳本文件引用到.ksh即可。 ksh提供使用ksh -x script.ksh執行的調試選項。

相關問題