bash脚本行的正确语法

时间:2019-11-11 17:41:10

标签: bash

编写脚本以从服务器列表中检索各种环境参数。我的脚本在运行时不返回任何值,但同一命令在脚本之外返回所需的值。

我尝试使用几种变体来检索相同的数据。由于对我有权访问的帐户设置了限制,因此其中一个命令失败。第二条命令有效,但只有在提升模式下执行。

此操作失败,访问被拒绝(pwdx受限制)

dzdo pgrep -f /some/path | xargs pwdx

这在脚本之外有效,但在脚本内不返回任何值

dzdo /bin/readlink -e /proc/"$(pgrep -f /some/path)"/cwd

使用“ bash -x”执行抄写时,我看到“ readlink”代码为空。

理想情况下,我想返回“ pgrep”命令所运行的进程的PID和路径。我可以单独使用“ readlink”版本返回的路径。最终目标是从多个服务器收集信息以用于审核。 (版本等)

我对“ readlink”命令使用了错误的语法吗?我对bash脚本进行编码还很陌生,因此我感谢任何指导以帮助理解如果我在脚本vs命令行中使用命令时应该做什么。

1 个答案:

答案 0 :(得分:2)

如果pwdx是受限制的程序,则需要使用dzdo而不是pgrep来运行。

pgrep -f /some/path | dzdo xargs pwdx