
如题,在 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] 是干啥的吗……建议把那本书撕了…… |