编写脚本以从服务器列表中检索各种环境参数。我的脚本在运行时不返回任何值,但同一命令在脚本之外返回所需的值。
我尝试使用几种变体来检索相同的数据。由于对我有权访问的帐户设置了限制,因此其中一个命令失败。第二条命令有效,但只有在提升模式下执行。
此操作失败,访问被拒绝(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命令行中使用命令时应该做什么。
答案 0 :(得分:2)
如果pwdx
是受限制的程序,则需要使用dzdo
而不是pgrep
来运行。
pgrep -f /some/path | dzdo xargs pwdx