我有一个 find 命令作为脚本的一部分,并将值导出到变量中,如下所示
export value1="'find /app/new1 -name '*service.sh*'"
经过测试我意识到,在少数主机上,目录如下所示
/sbclocal/app/new1
我如何检查并将两者传递为相同的值?
当我找到这个脚本并稍后停止或启动时执行。
答案1
如果我对问题的理解是正确的,那么实现理想状态的方法很少。
find
支持指定多个路径。所以这样说也没什么大不了的:export value1="$(find /app/new1 /sbclocal/app/new1 -name '*service.sh*')"
如果缺少一个目录,这将产生一条错误消息,但是(取决于您的方式)它通常可能不会影响您的脚本。
将两个命令传递给值:
export value1="$(find /app/new1 -name '*service.sh*' && find /sbclocal/app/new1 -name '*service.sh*')"
此选项提供的答案更接近您的问题(将两个命令传递给同一变量),但看起来并不是更好的解决方案。
支票方式:
export value1="$(for dir in /app/new1 /sbclocal/app/new1; do [ -d $dir ] && find $dir -name '*service.sh*'; done)"