13

マシンを最新の状態に保つための私の通常のコマンドはかなり冗長で、コマンドに時間がかかると、複数のパスワード プロンプトが表示される可能性があります。

sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove && sudo apt-get autoclean

これを 1 つのコマンドに短縮したいと思います (できればグローバル エイリアスを使用せずに)。

@amraの回答別のヒントに基づく解決策

sudo sh -c 'apt-get update && apt-get upgrade --yes && if [ -f /var/run/reboot-required ]; then echo You should reboot; fi' 
4

2 に答える 2

22

試す

sudo sh -c "apt-get -y update;apt-get -y dist-upgrade;apt-get -y autoremove;apt-get -y autoclean"
于 2010-07-23T09:12:32.340 に答える
1

'cmd1'がエラーなしで実行された場合にのみ、'&&'演算子を使用してコマンド'cmd2'を実行できます。

(cmd1 && cmd2)

ただし、これはbashで直接機能するだけで、前に「sudo」はありません。

したがって、期待どおりに機能するために、次のコマンドを使用できます。

sudo /bin/sh -c "apt-get update && apt-get dist-upgrade && apt-get autoremove && apt-get autoclean"

amraによって提案された答えは、上記のコマンドと同じではないことに注意してください。「;」で区切られたコマンド 前のコマンドの終了コードを考慮せずに順番に実行されます。「&&」を使用してコマンドを区切る場合、終了コードが考慮されます。したがって、「cmd1 && cmd2」がある場合、cmd1の終了コードが0の場合(つまり、cmd1が失敗しなかった場合)にのみcmd2が実行されます。

于 2010-07-23T09:13:58.967 に答える