22
|
bstpierre Edgar Aviles · 技术社区 · 14 年前 |
![]() |
1
26
您可以在运行新程序时通过
|
![]() |
2
9
我有机会浏览一下bash的源代码,它看起来不支持写入argv[0]。 |
![]() |
3
9
只是为了记录,尽管它不能准确回答原始海报的问题,但这与
|
![]() |
4
6
|
![]() |
5
6
我假设您有一个shell脚本希望执行,这样脚本进程本身就有了一个新的
输出如下:
所以
汪汪,还在显示
多亏了
this answer
,我首先测试环境变量
现在的输出是:
就快到了。这个
bash 5.0的更新 看起来bash 5.0增加了对特殊变量的写入支持 BASH_ARGV0 因此,这应该变得简单得多。 (见 release announcement ) |
![]() |
6
0
我只想补充一点,至少在某些环境中,这在运行时是可能的。在Linux上的Perl中分配$0确实改变了在ps中显示的内容,但是我不知道如何实现。如果我能找到答案,我会更新这个。 <编辑>: 基于Perl的工作方式,这是非常重要的。我怀疑运行时是否有任何bask内置的方式,但不确定。您可以看到perl如何在运行时设置进程名。 D出,我会更新这个。
编辑: 基于Perl的工作方式,这是非常重要的。我怀疑运行时是否有任何bask内置的方式,但不确定。你可以看到 Perl如何在运行时设置进程名 . |
![]() |
7
-1
将bash可执行文件复制到其他名称。 您可以在脚本本身中执行此操作…
如果您试图假装自己不是shell脚本,则可以将脚本本身重命名为酷的内容,甚至可以将其重命名为“”(单个空间),因此
将执行bash脚本并显示在ps列表中
好吧,所以调用脚本“”是一个非常糟糕的主意:) 基本上,更改名称
重命名bash并重命名脚本。 如果你担心的话,就像麦克唐纳先生。显然,关于将二进制文件复制到新名称(这是完全安全的),您还可以创建一个符号链接
这样,符号链接就出现在ps列表中。(再次使用path=$path:。如果你不想要。/) |