suを使用してBashで複数のコマンドを実行する

suを使用してBashで複数のコマンドを実行する

su -crootで複数のコマンドを実行したいです。これには追加のスクリプトを使用したくありません。

私は以下を試しました:

su root -c "tcpdump -i wlan0 -s 1500 -w CCCCCC & " -c "ls -lh"

ただし、最初の項目だけが実行され、ls最初の項目は実行されません。

私は以下を試しました:

su root -c "tcpdump -i wlan0 -s 1500 -w CCCCCC & ; ls -lh;"

ところでセミコロンにエラーがあると出てきますね;

どうすればわかりますか?

ベストアンサー1

このコマンドはうまく動作します。

su root -c "date; ls -lh"

しかし、このコマンドでは:

su root -c "tcpdump -i wlan0 -s 1500 -w CCCCCC & ; ls -lh;"

&以前はそのような経験があったため、;エラーが発生します。コマンドを削除し&てやり直してください。

または、次のようにコマンドを実行できます。

su root -c "(tcpdump -i wlan0 -s 1500 -w CCCCCC &); ls -lh"

おすすめ記事