我有一个我正在执行的命令,此命令存储在某个变量中,而存储此命令的此变量存储另一个变量 问题是当我改变我的第二个变量时,它在我的第一个变量中没有动态变化,所以正在执行的命令总是使用相同的变量。 这是我的代码:
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.
知道如何解决这个问题吗?
答案 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)"