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