大家好我在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。我想这是因为我试图在字符串中添加一个整数,但我不确定我能做到这一点的任何其他方式。 有人可以指出我正确的方向吗?
答案 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))"
}