如何在linux中增加变量的一部分

时间:2017-06-25 09:48:31

标签: linux bash

大家好我在linux脚本中有以下功能。

#!/bin/bash
function add1{
   echo $1
   var1=$1
   echo input + 1 is [$var1+1]
}
add 1

我想接受输入并添加1.因此,如果输入是input_1,我想返回input_2。 我的代码当前正在打印input_1 + 1。我想这是因为我试图在字符串中添加一个整数,但我不确定我能做到这一点的任何其他方式。 有人可以指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

我的代码出现语法错误,因为您错过了一个空格,然后您的函数名为add1,但您调用了add。函数声明应该是:

function add {

但是,这不符合POSIX标准,首选add() {

有几种方法可以实现您的要求。这是我的:

#!/bin/bash

add() {
   var1=$1
   num=${var1##*_}       # Extract the number after the _
   name=${var1%%_*}      # Extract the name before the _

   echo "input + 1 is: ${name}_$((num+1))"
}
add input_1

给出:

input + 1 is: input_2

请注意,我向num添加1的算术运算是$((num+1))

答案 1 :(得分:1)

对于单行解决方案:

function add() {
  echo "input + 1 is: ${1%_*}_$((${1##*_}+1))"
}