所以基本上我有一个变量,让我们考虑这个变量v
v=overflow_12
现在我正在cut -d
执行_
分隔命令以分割溢出,其中12个已完成:
echo $v | cut -d '_' -f 2
给出了答案12.然而,如何将12存储在变量中并最终将其增加1以使其成为13?
我试过了:
i= echo $v | cut -d '_' -f 2
应该将12存储到$i
?然而当我接着:
echo $i
这只是一个空白的答案?我必须最终将此变量增加1,但我不知道为什么12不存储在$i
中?
答案 0 :(得分:0)
使用$(command)
以字符串形式捕获命令的输出。
i=$(echo $v | cut -d '_' -f 2)
或者,您可以直接在bash中删除前缀。
i=${v#*_}
#
删除字符串前缀,*_
匹配任何后跟下划线的内容。
答案 1 :(得分:0)
您只是使用错误的语法进行变量赋值。您不能使用|
来管道变量,而=
之后也不能有空格。这有效:
v=overflow_12
i=$(echo $v | cut -d '_' -f 2)
echo $i
答案 2 :(得分:0)
使用i = $(命令)将i设置为命令结果。
答案 3 :(得分:0)
待办事项
i=$(echo $v | cut -d '_' -f 2)
适用于大多数bash版本,除了非常旧版本。对于古老的bash版本
i=`echo $v | cut -d '_' -f 2`
我建议使用&#34; here string&#34;语法<<<
而不是echo
i=$(cut -d '_' -f 2 <<< $v)