如何找到 运行 脚本的传递参数值?

How to find passing argument value of a running script?

我有一台 AIX 生产服务器,上面有一个脚本 A.sh 运行ning。 我没有此服务器的根访问权限。 我想找出这个 A.sh 脚本的参数传递值。 我怎样才能得到这个值?

里面有规定吗/proc/processID?

以下无效。我尝试生成一个脚本:

echo "Hello   "

while [ 1 ]
do
   sleep 2
   echo $$
done

然后我 运行 这个脚本由

test.sh 1  2 3

输出:

$ cat /proc/3107/cmdline
-bash$

根据@Cyrus 的建议,我希望

1 2 3 

这是我传入的参数,但它不是那样工作的。

你可以试试:

cat /proc/PROCESSID/cmdline

这应该有效:

cat /proc/3107/cmdline | tr '[=10=]' ' ';

或者您可以使用:

ps -ef | grep script.sh | grep -v grep

其中 script.sh 是您的脚本的名称,现在是 运行。

验证步骤:

  1. 创建一个名为 script.sh 的脚本并将以下代码粘贴到其中:

    #!/bin/bash
    while :
    do
      echo "Press [CTRL+C] to stop.."
      sleep 1
    done
    
  2. 保存文件(:wq! 来自 vi 编辑器)。

  3. 可执行
    chmod a+x script.sh
    
  4. 运行 通过发出如下命令行选项的脚本:

    ./script.sh var1 val1 var2 val2 var2 val4
    
  5. 打开另一个终端(重复会话)并发出:

    ps -ef | grep script.sh | grep -v grep 
    

您应该能够看到类似这样的内容:

username 12227  2268  0 07:48 pts/98   00:00:00 /bin/bash ./script.sh var1 val1 var2 val2 var2 val4 var4