如题,在 busybox 中,busybox 命令会被软链到 ls,又被软链到 wc,但是在执行软链 ls 和 wc 的时候,输出(命令的作用)又是不同的,请教一下大佬们,这个咋实现的?
想在 google 里面搜索的,但是不知道咋表达,也没找到有用的信息。
1
yangg 2019 年 7 月 24 日 bash
if [ "$(basename $0)" = 'wc' ] then |
2
0ZXYDDu796nVCFxq 2019 年 7 月 24 日 via Android 看 busybox 的代码就知道了
我猜 busybox 的代码里判断软连的文件名然后执行不同的代码 |
4
podel 2019 年 7 月 24 日
不管是 windows 还是 linux 你命令执行程序的时候, 第一个系统参数 是 你调用的命令的名字。
应该是通过这个实现的。 |
5
lihongjie0209 2019 年 7 月 24 日
|
6
skylancer 2019 年 7 月 24 日
@lihongjie0209 linux 分区,谢谢茄子
|
7
asxalex OP |
10
Les1ie 2019 年 7 月 24 日
PS:
iptables ip6tables 也是这样的,实际上是链接到了 xtables-multi |
11
wweir 2019 年 7 月 24 日 via Android
os.Args [ 0 ]
|
12
LGA1150 2019 年 7 月 24 日
argv[0]
|
13
muzuiget 2019 年 7 月 25 日
判断命令行第一个参数就是了,好多语言都支持。
|
14
AlynxZhou 2019 年 7 月 25 日
学 C 的时候书上没说 argv[0] 是干啥的吗……建议把那本书撕了……
|