タグ

シェルスクリプトに関するy8ttyanのブックマーク (2)

  • 一時ファイル無しで、ファイルを上書き更新するシェルスクリプト - Qiita

    どんなコマンドでも上書き更新OK シェルスクリプトでは通常、(追記ではなく)ファイルの中身を書き換えたいと思ったら一時ファイルに新しい中身を書き出してから、元のファイルに上書きしてやるしかない。 単独のsedコマンドやnkfコマンドで済む場合は、それらのコマンドが個別に対応している場合もあるが、そういうのは運がよい場合だけ。どんなコマンドでもできるようにはならないものか? →なります こたえ 更新のために通したいコマンドが、CMD1、さらにCMD2、……、であって、更新したいファイルパスが$fileの中に格納されていたとすると、次のコードを書けば実現できる。 ただし、使用上の注意があるから、最後まで読むこと! なぜこれでうまくいくのか? UNIXにおいて、rmコマンドなどによる削除(unlink)は、ファイルの実体を消すのではなくinodeと呼ばれる見出しを消すだけであることは御存知のとお

    一時ファイル無しで、ファイルを上書き更新するシェルスクリプト - Qiita
    y8ttyan
    y8ttyan 2020/06/12
    これはかっこいい。
  • if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

    if 文と test コマンド if 文とは? if 文とは、与えられた条件式が真のときのみ処理を行い、それ以外の場合は処理をスキップする、などといった場合に使用される条件分岐処理である。 条件式には一般的に test コマンドを用いるが、ls コマンドや grep コマンド等の他のコマンドを用いても構わない。 if 文は条件式に指定されたコマンドの終了ステータスを判定し分岐を行う。終了ステータスが「0」の場合は真、その他の場合は偽となる。 if 文 タイプ 1

    if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 1