小智 5
system()通过调用/ bin/sh -c命令执行命令中指定的命令,并在命令完成后返回.
sh -c忽略别名.也许在某个地方你有别名的ls意思ls --color=auto.
所以,例如,如果我这样做sh -c 'ls',我将没有颜色.
证明:
wow ?[01:04 AM][vnbraun@chernobyl ~]$ which ls
alias ls='ls --color=auto'
/bin/ls
wow ?[01:08 AM][vnbraun@chernobyl ~]$ sh -c 'which ls'
/bin/ls
Run Code Online (Sandbox Code Playgroud)
因此,你可以尝试做system("ls --color=auto");.