忍者ブログ
  ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
Admin*Write*Comment
[598]  [597]  [596]  [595]  [594]  [593]  [592]  [591]  [590]  [589]  [588

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。




Linuxでfor文やwhile文を実施したときに引数を自動で認識してくれます。
例えば・・・

---------------------------------------------
for i in 1 2 3 ; do
    echo ${i}
done
---------------------------------------------

するとプロンプトには
1
2
3
と表示されるので、for文に1と2と3が順番に入っていることがわかります。
と、いうことはfor文は「1」と「2」と「3」は別の文字であり、引数は3つと認識しているようです。
「1 2 3」というスペース混じりの一つの文字列とは認識されないんですね。

それでは「1」と「2」と「3」を別の文字だと区切っているものはなんでしょうか?
スペースですよね。
シェルはこの区切り文字をどのように認識されているのでしょうか?
それは$IFSという変数で持っています。
デフォルトではこんな感じ

---------------------------------------------
IFS=$' \t\n'
---------------------------------------------

スペースとタブと改行が入っています。
そのためfor文を実行したときに「1」と「2」と「3」は別々の引数として処理されました。

長くなりましたが、結論、区切り文字を変更したい場合は$IFS変数を変更すれば良いということです。

でわでわ


拍手

PR



COMMENT
Name
Title
Color
Mail
URL
Text
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret

TRACKBACK
TrackbackURL:
ブログ内検索
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カウンター
最新コメント
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
ブログパーツ
アバター
Copyright © アナログを愛するデジタル生活館 All Rights Reserved.
photo by Kun material by Atelier Black/White Template by Kaie
忍者ブログ [PR]