回答:
本当にシンプル-コマンドを分離する必要があります。たとえばこれ:
#!/bin/bash
sudo apt-get update
sudo apt-get upgrade
パッケージリストを更新してから、パッケージを更新します。別の可能性はこれです(おそらく、&&はupgrade
、update
出口が正常に終了した場合にのみコマンドの実行を許可するためです)。
#!/bin/bash
sudo apt-get update && sudo apt-get upgrade
これにより、パッケージのリストを更新するためのコマンドが実行され、次にパッケージ自体が実行されます。これはテキストファイル(updatescript
ホームディレクトリなど)に保存する必要があります。次に、次のコマンドを実行して実行可能にします。
chmod +x ./updatescript
または、ファイルを右クリックして、そのプロパティで実行可能にします。
そしてこれをターミナルで実行します:
./updatescript
ノート):
コマンド-y
で使用できるオプション()があるupgrade
ため、パッケージをアップグレードする前にプロンプトは表示されません。apt-get
パッケージをアップグレードする前に、何をしているのかを確認することをお勧めします。これは、愚かなことや、望まないことを行う可能性があるためです。このようなオプションの詳細については、を実行してくださいman apt-get
。
これはまた、更新内容を確認して実行できるため、ターミナルを使用してスクリプトを実行する方が理想的であることも意味します。GUIでアップデートを実行する方法が必要な場合は、ソフトウェアセンターを使用してください。
@Wilfによる優れた回答にいくつかのポイントを追加するだけで、
なんらかの理由で必要な場合は、並列でコマンドを実行できます。たとえば、autostart
OpenBoxのスクリプトは次のようになります。
#!/bin/bash
nitrogen --restore &
tint2 &
tilda
これは、を使用して背景画像を設定しnitrogen
、パネルtint2
を起動し、Quake3スタイルのドロップダウンコンソールtilda
をすべて同時に起動します。これは、次のプログラムを起動する前にプログラムを終了する必要がない場合に役立ちます。しかし、そうではapt-get update
ありませんapt-get upgrade
!
&
各行の終わりにある記号に注意してください。これにより、シェルはそのプロセスをバックグラウンドに分岐し、実行を継続します。注それは異なるのですか&&
、基本的である、and
看板、command_1 && command_2
実行されるcommand_1
と、それは成功で終了した場合にのみ、実行しcommand_2
、しばらくは、command_1 & command_2
最初の後に第2の右を開始します。
また、次のようにコマンドをスタックしてシリアルに実行させることもできます。
#!/bin/bash
apt-get update
apt-get upgrade
これはapt-get upgrade
、apt-get update
が終了した後に実行されますが、結果には関係ありません。そのため、たとえば、ネットワークエラーで更新が終了した場合でも、アップグレードは実行されます。
次の;
記号を使用して、これを1行で行うこともできますapt-get update ; apt-get upgrade
。繰り返しになりますが、このソリューションはこれらの特定のコマンドには最適ではありませんが、他の状況で役立つ場合があります。
最後のポイント&&
として、次のような行を改行することもできます。
command_1 &&
command_2
これはと同じになりcommand_1 && command_2
ます。