如何找到 运行 脚本的传递参数值?
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
是您的脚本的名称,现在是 运行。
验证步骤:
创建一个名为 script.sh 的脚本并将以下代码粘贴到其中:
#!/bin/bash
while :
do
echo "Press [CTRL+C] to stop.."
sleep 1
done
保存文件(:wq!
来自 vi 编辑器)。
让
可执行
chmod a+x script.sh
运行 通过发出如下命令行选项的脚本:
./script.sh var1 val1 var2 val2 var2 val4
打开另一个终端(重复会话)并发出:
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
我有一台 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
是您的脚本的名称,现在是 运行。
验证步骤:
创建一个名为 script.sh 的脚本并将以下代码粘贴到其中:
#!/bin/bash while : do echo "Press [CTRL+C] to stop.." sleep 1 done
保存文件(
:wq!
来自 vi 编辑器)。让
可执行chmod a+x script.sh
运行 通过发出如下命令行选项的脚本:
./script.sh var1 val1 var2 val2 var2 val4
打开另一个终端(重复会话)并发出:
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