一貫して実行されるように複数行を貼り付けます。

一貫して実行されるように複数行を貼り付けます。

以下は、すべてを実行する方法で端末に貼り付けたい非常に単純なコードスニペットの例です。

sudo apt update
sudo apt upgrade


sudo apt -y install build-essential
sudo apt -y install git
sudo apt -y install libxml2-dev # required for some tools using xml files

sudo apt autoremove

残念ながら、build-essentialがあらかじめインストールされていない場合は、後続の行だけがsudo apt -y install build-essentialスキップされます。 gitがインストールされていない場合も同様です。 git行で実行され、残りはスキップされます。

なぜこれが起こるのですか?スクリプトファイルを生成し、bashを介して実行せずにこの問題を解決する方法はありますか?

ベストアンサー1

それでもsudoの資格情報キャッシュタイムアウト内にあると仮定すると(不明な場合はsudo -vコードスニペットを実行する前に更新してください)、apt(-get)は非常に豊富なコンソールアプリケーションなので問題が発生します。何でも尋ねると、標準入力を消費します-y

サブシェルで完全なコードスニペットを実行することでこの問題を解決できます。

プロンプトで最初にaと入力し、(コードを貼り付けてから閉じる文を入力し、)Enterキーを押します。

今行く時間です。

コードスニペットは貼り付けた後すぐには実行されません。代わりに、コマンドラインで「キューに追加」され、閉じ括弧を待ちます。

apt-get autoremove(PS:システムによっては、代わりに使用する必要があり、使用する必要がapt autoremoveあります。)-yupdateupgrade

おすすめ記事