나는 당신이 이것을 할 수 없다고 확신하지만 누군가 이상한 트릭을 가지고 있을 수도 있습니다.
ps 출력에 주석(#blahblah)을 표시하는 방법이 있습니까?
내 문제는 내가 스크립트를 가지고 있다는 것입니다. 이를 "myscript.sh"라고 부르겠습니다. 그다지 설명적이지 않습니다.
나는 다음과 같은 일을 할 수 있기를 바랍니다.
./myscript.sh #Running on 10.10.45.10
ps가 "myscript.sh"라고 말하는 대신 주석 줄을 출력하도록 합니다.
내가 생각할 수 있는 해킹 방법은 주석을 변수에 넣고 "myscript.sh" PID를 grep한 다음 /proc/PID/environ에서 변수를 읽는 것입니다. 그러나 이것은 매우 추악하며 뿌리가 필요합니다.
답변1
zsh를 사용하면 다음을 수행할 수 있습니다.
#! /bin/zsh -
(($+ARG0_SET)) || ARG0_SET= ARGV0="#Running on 10.10.45.10" exec zsh "$0" "$@"
ps -f -p "$$"
실행하면 다음이 제공됩니다.
~$ ./a
UID PID PPID C STIME TTY TIME CMD
chazelas 20157 8822 0 21:51 pts/1 00:00:00 #Running on 10.10.45.10 ./a
이에 상응하는 ksh93
것은 다음과 같습니다.
#! /bin/ksh93 -
((${#ARG0_SET})) || ARG0_SET=yes exec -a "#Running on 10.10.45.10" ksh93 "$0" "$@"
ps -f -p "$$"