在 Bash 中使用 su 运行多个命令

Abr*_*ile 11 bash su

我想使用su -c以 root 身份运行多个命令。我不想为此使用额外的脚本。

我尝试了以下方法:

su root -c "tcpdump -i wlan0 -s 1500 -w CCCCCC & " -c "ls -lh"
Run Code Online (Sandbox Code Playgroud)

但它只执行ls不是第一个。

我尝试了以下方法:

su root -c "tcpdump -i wlan0 -s 1500 -w CCCCCC & ; ls -lh;"
Run Code Online (Sandbox Code Playgroud)

但它说分号有错误;。

你知道怎么做吗?

小智 14

此命令运行良好:

su root -c "date; ls -lh"
Run Code Online (Sandbox Code Playgroud)

但是在这个命令中:

su root -c "tcpdump -i wlan0 -s 1500 -w CCCCCC & ; ls -lh;"
Run Code Online (Sandbox Code Playgroud)

由于您&之前有过,;因此您会遇到错误。尝试删除&并重新执行该命令。

或者你可以像这样运行你的命令:

su root -c "(tcpdump -i wlan0 -s 1500 -w CCCCCC &); ls -lh"
Run Code Online (Sandbox Code Playgroud)