當我運行下面的腳本:的Unix腳本 - 一個字符串的第一個字母
#!/bin/bash
test="abcdr"
test2=${test:0:2}
echo $test2
我得到的錯誤:script: 3: script: Bad substitution
但後來我在終端上鍵入完全相同的命令,它沒有正常工作任何錯誤
爲什麼會發生這種情況,我該如何解決?
當我運行下面的腳本:的Unix腳本 - 一個字符串的第一個字母
#!/bin/bash
test="abcdr"
test2=${test:0:2}
echo $test2
我得到的錯誤:script: 3: script: Bad substitution
但後來我在終端上鍵入完全相同的命令,它沒有正常工作任何錯誤
爲什麼會發生這種情況,我該如何解決?
您正在運行腳本sh
,與bash
不一樣。它不支持這種類型的替換。 與
bash script
運行腳本,或者確保它的可執行文件(chmod u+x /path/to/script
),然後直接運行
/path/to/script
如果當前目錄恰好是/path/to
,你可以只輸入
./script
@ user3597432我在該腳本內容中看不到任何問題,主要是這個問題可能與bash版本有關,或者腳本如何執行貢獻。如果你不能通過bash終端解決,你可以嘗試korn shell,如果可能的話更方便。只需將ksh bin和腳本文件引用到.ksh即可。 ksh提供使用ksh -x script.ksh執行的調試選項。
你是如何運行你的腳本? '/ bin/bash'中是'bash'嗎? (用'哪個bash'檢查)。 – fedorqui
是的,我在/ bin/bash – user3597432
你如何運行腳本? – choroba