[英]Get sourced filename in busybox ash
busybox 中的 ash shell 似乎没有实现任何获取源文件名的标准方法。 例如:
testo
:#./usr/bin/env -S busybox ash echo hello whorl echo using source source./sourceme echo using. . ./sourceme
sourceme
:echo underscore $_ echo bs $BASH_SOURCE echo zero $0
#./testo hello whorl using source underscore./testo bs zero./testo using. underscore./testo bs zero./testo
我需要一些东西放在sourceme
中,它会得到自己的名字/路径。
This excellent answer包含一个非常聪明的方法来完成这个。 我在这里调整了他们的解决方案——将这一行插入到sourceme
中:
echo lsof `lsof -p $$ -Fn | tail -n1 | sed 's!^[^/]*!!g'``
你得到:
lsof /absolute/path/to/sourceme
注意:由于我们在这里谈论的是 busybox,因此这是使用 busybox 的lsof
实现上述内容:
lsof | grep '^'$$ | tail -n1 | awk '{print $3}'
注意:如果有人找到使用busybox ash
的一些内置机制来执行此操作的方法,请发布答案,我会将已接受的答案更改为您的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.