Bashスクリプトを効果的に使用する方法(コストと良い習慣を減らすさまざまな方法)は何ですか? [閉鎖]

Bashスクリプトを効果的に使用する方法(コストと良い習慣を減らすさまざまな方法)は何ですか? [閉鎖]

これは最も重要な質問の1つです。スクリプトを効果的に書くには?悪い方法は何で、良い方法は何ですか?私はいくつか知っており、ここで指摘します。もし他の内容をご存知の方は、コメントを残してください。この質問は、利用可能なベストプラクティスを理解するために求められます。すべてをGoogleで検索することは非常に難しく、すべてが常に同じ場所に表示されるわけではありません。したがって、この質問は経験のあるすべての人に与えられました。私はこれらのことを自分で学びようとしています。したがって、ここに提供するすべてのコメント/回答は私と私のような人々にとって非常に役立つと思います。よろしくお願いします。

ベストアンサー1

1. ディレクトリツリーを別途定義する必要はありません。

誤ったアプローチ:

~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $

良いアイデア:

~ $ mkdir -p tmp/a/b/c

2. アーカイブ:

時々、人々はa.tarのようなtarをアーカイブを抽出したい他のディレクトリに移動するのを見ます。ただし、この目的のためにディレクトリを指定するためにここで-Cオプションを使用できるため、これは必要ありません。

~ $ tar xvf -C tmp/a/b/c newarc.tar.gz

3. 制御演算子の重要性:

2つのコマンドがありますが、2番目のコマンドは、最初のコマンドが実行されたときにのみ実行する必要があります。そうしないと、2番目のコマンドは実行されません。したがって、ここのコマンドは、他のコマンドがゼロ終了ステータスを返す場合にのみ実行する必要があります。

例:

~ $ cd tmp/a/b/c && tar xvf ~/archive.tar

上記の例では、アーカイブの内容はディレクトリ:cから抽出する必要がありますが、そのディレクトリが存在する場合にのみ可能です。ディレクトリが存在しない場合、tarコマンドは実行されず、何も抽出されません。

おすすめ記事