Ubuntu 16.04にCouchDB 2.0をインストールするためにgithubで見つけたsimple shell scriptがあります。これは、これらの行がありますset -eを使用してスクリプトでOR TRUE演算子を使用する理由は何ですか?
#!/bin/sh
...
sudo apt-get update || true
...
|| pipe
コンポーネントが何をしているのか?私。何がtrue
にパイプされているのですか?私の知る限りでは、サーバー上で実行すると、パイプなしでapt-get update
コマンドを実行するのと同じ結果になります。
私は更新したい場合は以前、/私はどうなるのパッケージをインストールします。
sudo apt-get update
sudo apt-get upgrade
は、アップグレードコマンドが実行さにtrue
結果に配管していますか?また、シェル/ bashスクリプト内のすべてが同期して実行されると仮定できますか?
これはパイプではなく、論理的です。つまり、最初のコマンドに終了ステータス0(成功)がない場合は、2番目のコマンドを実行します。これにより、この行の終了ステータスは常に0になります。 '-e'シェルオプションは設定されていますか?この種のものは、しばしば見られます。 (編集:ちょうどチェックされて、 'set -e' *が*設定されています) –
は、私が恐ろしくオフであったので、タイトルを変更しました。 –