问题描述
如何在任何特定点(时间、条件等)仅扩展 bash $variable ? 因为这有效:
i=1
u="sum = $i + \$o"
o=two; n=$(eval echo $u)
均衡到n='sum = 1 + two'
事实上,$(eval echo $)
不适用于复杂的长表达式
上面 u 的实际情况是一些 find 参数,例如 set -x 的输出:
C='( -ipath /home/olive/build/CMakeFiles/* ( ( -type d ( -regex .*\s.* -printf '\''%p/'\''\n -o -printf %p/\n ) -o ( -regex .*\s.* -printf '\''%p'\''\n -o -printf %p\n ) ) ) -o -ipath /home/olive/build/CMakeFiles -type f ( -regex .*\s.* -printf '\''%p'\''\n -o -printf %p\n ) -o -iregex .{17}/.+/CMakeFiles$RP ( -type d ( -regex .*\s.* -printf '\''%p/'\''\n -o -printf %p/\n ) -o ( -regex .*\s.* -printf '\''%p'\''\n -o -printf %p\n ) ) )'
所以 $RP 有很大的需要在一次扩展后进行扩展(如样本中的 $o)
那么如何在任何特定的任意点只扩展一个 bash 变量而不触及 var.坐
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)