我在一个linux的shell脚本里写这样的语句,我发现同一条语句的执行结果被缓存下来了,比如这个,a是ls字符串,然后b是echo ls,第10行的b字符串的结果是当前目录下的所有内容,第13行我创建了一个新的123文件夹,第15行讲道理应该新增了123这个文件夹,但实际没有。shell如下:
该怎么写,让b的内容可以动态变呢,我试着写了个函数c发现是可以的,但是太丑了,有没有办法直接用变量能够实现重新执行呢?
#!/bin/bash
dir="."
a="ls ${dir}"
b="echo $(${a})"
# c(){
# echo $($1)
# }
${b}
# c $a
mkdir 123
${b}
# c $a
说实话,没怎么看懂你的意思,感觉你想要的是这个 $(${b})