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