2014-01-06 85 views
0

我想用bash腳本替換字符串中的特定字符,但是我失敗了。bash腳本中的字符串替換給出錯誤

我有以下代碼

line=${array[1]} 
    echo ${array[1]} 
    echo ${array[0]} 
    echo `expr index "$line" *` 

線或陣列[1]包含以下字符串/path/v1/module/order/*,我想與來自另一文件中的一些輸入值來代替*

但我在最後一行發生錯誤...我嘗試使用行變量,甚至與數組。錯誤是 expr: syntax error

P.S:我使用的是bash版本3

回答

2

只需使用bash parameter expansion

line='/path/v1/module/order/*' 
repl='some other value' 
newvalue=${line/\*/$repl} 
echo "$newvalue" 
/path/v1/module/order/some other value 
+0

優秀....... 。 –

1

的不帶引號的星號被擴展到文件名列表expr被調用之前。使用

echo $(expr index "$line" "*") 

(該$(...)是沒有必要的,但在地方反引號的建議。)