LoginSignup
7
6

More than 5 years have passed since last update.

while-readの区切り文字を空白以外に設定したい

Posted at

シェルスクリプトにおいて、要素の区切りは「空白文字」に設定することが一般的です。ただし現実問題として「空白文字」が要素のひとつとして扱わねばならない場合があり、その際には「空白文字」以外をデリミタとして設定する必要があります。

whileとともに利用することが多い、標準入力を変数に代入するreadコマンドもまたデフォルトでは「空白文字」を区切り文字としています。これを「空白文字」以外にする場合はIFSを利用します。

たとえば次の例は区切り文字を@にしています。

echo "perl@python@php" | while IFS=@ read x y z; do 
    echo "x => $x"
    echo "y => $y"
    echo "z => $z"
done;

# x => perl
# y => python
# z => php
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6