Shell-Script
shell腳本中的子字元串
我試圖從字元串中獲取子字元串,但出現錯誤:
${curr_rec:3:4}: bad substitution
#!/bin/ksh get_file_totals() { if [ -e "$file_name" ] then IFS='' while read line do curr_rec=$line echo ${curr_rec:3:4} done < "$file_name" else echo "error" fi } file_name="$1" get_file_totals
重寫它會更有效,從而首先避免這個問題:
#!/bin/ksh get_file_totals() { if [ -e "$file_name" ] then cut -c4-7 "$file_name" else echo "error" # consider stderr by appending >&2 fi } file_name="$1" get_file_totals
你在呼叫
ksh
. 您想要進行的那種替換僅在 ksh ‘93 之後才有效。您是否有機會使用舊版本?執行 ksh 並檢查是否存在KSH_VERSION
. 如果它不存在或在 93 年之前,它就太舊了。