繁体   English   中英

在 busybox ash 中获取源文件名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM