我正在尝试使用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
答案 0 :(得分: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
答案 1 :(得分:1)
在调用expr
之前,未加引号的星号将扩展为文件名列表。使用
echo $( expr index "$line" "*" )
($(...)
不是必需的,但建议代替反引号。)