如何在 shell 脚本中使用两个 find 命令输出传递导出变量

如何在 shell 脚本中使用两个 find 命令输出传递导出变量

我有一个 find 命令作为脚本的一部分,并将值导出到变量中,如下所示

export value1="'find /app/new1 -name '*service.sh*'"

经过测试我意识到,在少数主机上,目录如下所示

/sbclocal/app/new1

我如何检查并将两者传递为相同的值?

当我找到这个脚本并稍后停止或启动时执行。

答案1

如果我对问题的理解是正确的,那么实现理想状态的方法很少。

  1. find支持指定多个路径。所以这样说也没什么大不了的:

    export value1="$(find /app/new1 /sbclocal/app/new1 -name '*service.sh*')"
    

    如果缺少一个目录,这将产生一条错误消息,但是(取决于您的方式)它通常可能不会影响您的脚本。

  2. 将两个命令传递给值:

    export value1="$(find /app/new1 -name '*service.sh*' && find /sbclocal/app/new1 -name '*service.sh*')"
    

    此选项提供的答案更接近您的问题(将两个命令传递给同一变量),但看起来并不是更好的解决方案。

  3. 支票方式:

    export value1="$(for dir in /app/new1 /sbclocal/app/new1; do [ -d $dir ] && find $dir -name '*service.sh*'; done)"
    

相关内容