linux 中括号
发布网友
发布时间:2022-05-02 17:28
我来回答
共1个回答
热心网友
时间:2022-06-21 01:35
Linux中,lsmod(list moles)是显示已载入系统的模块。
标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。这里2>&1的意思就是将标准错误也输出到标准输出当中。
所以这是告诉你出错了,找不到老的lsmod。追问谢谢你得回答。
shell实际的运行结果并不是提示我"Kernel requires old lsmod...",而是什么都没有。
但我执行lsmod的时候有下面的提示信息:
#lsmod
Kernel requires old lsmod, but couldn't run lsmod.old: No such file or directory
不知道是什么原因,所以找到了源码查看,发现写在该shell里的,
[ "`./lsmod 2>&1`" = "Kernel requires old lsmod..." ] 这种写法我还是没有理解,为什么把一个字符串赋值给一个命令行?
追答不是赋值,而是输出,类似于c中的printf或者c++中的output吧。不知道比喻的恰当不。这一段程序的功能应该是要输出具体的错误内容,但不清楚为什么实际的运行结果会不没有,我没法解答了。你再等等高手吧。