■ はじめに
小ネタ。 CI/CD の処理の一環で、 テキストファイルにバージョンが指定されていて そのファイルを読み込んで、カウントアップした値を 処理で使いたいなっと思った時に、 IFS がでてきたので メモっておく
目次
【1】環境変数 IFS 【2】readコマンド 【3】サンプル 例1:バージョンをインクリメントする 例2:1行づつ読み込み出力する
【1】環境変数 IFS
* Internal Filed Separator (内部ファイル区切り文字) * 区切り文字を指定として認識されている
【2】readコマンド
read [variable1, …] * 標準入力から行を 1 行読み取り、 その行を複数のフィールドに分割し、 各 variable に割り当てます
【3】サンプル
例1:バージョンをインクリメントする
houseisan.com/s?h=80e0a85a27df4bada230163ae5654e47
#!/bin/bash CURRENT_VERSION=`cat VERSION.txt` NEW_VERSION=`echo $CURRENT_VERSION | ( IFS=".$IFS" ; read a b c && echo $a.$b.$((c + 1)) )` echo $NEW_VERSION
VERSION.txt
1.0.0
例2:1行づつ読み込み出力する
#!/bin/bash # 改行で区切り文字になる while IFS= read -r line; do echo "$line" done < hello.txt
hello.txt
Hello World
関連記事
シェル ~入門編~
https://dk521123.hatenablog.com/entry/2014/10/23/005406
シェル ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2018/03/03/210642
シェル ~ ファイル処理あれこれ ~
https://dk521123.hatenablog.com/entry/2020/09/28/000000
シェル ~ CSV / TSVファイルの読み込み ~
https://dk521123.hatenablog.com/entry/2021/08/13/120956
Amazon Redshift ~ SHOW TABLE コマンド ~
https://dk521123.hatenablog.com/entry/2023/03/07/152123