Bash修改变量

时间:2015-02-03 14:55:11

标签: linux bash unix

我有一个我正在执行的命令,此命令存储在某个变量中,而存储此命令的此变量存储另一个变量 问题是当我改变我的第二个变量时,它在我的第一个变量中没有动态变化,所以正在执行的命令总是使用相同的变量。 这是我的代码:

test="test"
TEMP_STR="doesn't exist"
checkClient=`p4 client -o -t $test 2>&1`
echo this is the output: "$checkClient"
test="${test}_2"
echo echo this is the new client name "$test"
echo this is the new output: "$checkClient"

这是输出:

this is the output: Client 'test' doesn't exist.
echo this is the new client name test_2
this is the new output: Client 'test' doesn't exist.

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

根据您所描述的方式然后发表评论,您似乎希望行为只要变量发生变化,您就会希望相关命令根据变量的新值返回不同的值。

您实际上可以使用 BASH功能

checkClient() { p4 client -o -t "$arg" 2>&1; }

现在将其用作:

arg="test"   
echo "this is the output: $(checkClient)"

arg="${test}_2"
echo echo this is the new client name "$arg"
echo "this is the new output: $(checkClient)"