「シェルスクリプトの基礎 - IFS」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == 環境変数IFS(Internal Filed Separator)には、bashの場合、スペース、タブ、改行($' \t\n')が初期設定されており、<br> これらが…」
 
文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag…
 
(同じ利用者による、間の3版が非表示)
6行目: 6行目:
<br>
<br>
例えば、csvファイルを読み込む場合は、IFSにカンマ(,)を設定する。<br>
例えば、csvファイルを読み込む場合は、IFSにカンマ(,)を設定する。<br>
<br>
現在のIFSの確認するには、以下のコマンドを実行する。<br>
echo $IFS | od -ac
<br><br>
<br><br>


14行目: 17行目:
まず、IFSを設定せずに内容を抜き出せるか確認する。<br>
まず、IFSを設定せずに内容を抜き出せるか確認する。<br>
実行すると、初期設定では区切り文字にコロン(:)は設定されていないため、1行が全て変数USERに格納される。<br>
実行すると、初期設定では区切り文字にコロン(:)は設定されていないため、1行が全て変数USERに格納される。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
21行目: 24行目:
     echo "$USER $LOGINSHELL"
     echo "$USER $LOGINSHELL"
  done
  done
  </source>
  </syntaxhighlight>
<br>
<br>
  # 出力
  # 出力
36行目: 39行目:
ユーザ名とログインシェルを抜き出して表示する。<br>
ユーザ名とログインシェルを抜き出して表示する。<br>
最後に、変数OLDIFSを使用してIFSの設定を元に戻す。<br>
最後に、変数OLDIFSを使用してIFSの設定を元に戻す。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
48行目: 51行目:
   
   
  IFS=$OLDIFS
  IFS=$OLDIFS
  </source>
  </syntaxhighlight>
<br>
<br>
  # 出力
  # 出力
69行目: 72行目:
まず、IFSを初期設定のままで実行する。<br>
まず、IFSを初期設定のままで実行する。<br>
IFSの初期設定は、空白、タブ、改行となっているため、空白で区切られた文字が1文字ずつ変数iに格納されて、1文字ずつ表示する。<br>
IFSの初期設定は、空白、タブ、改行となっているため、空白で区切られた文字が1文字ずつ変数iに格納されて、1文字ずつ表示する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
76行目: 79行目:
     echo $i
     echo $i
  done
  done
  </source>
  </syntaxhighlight>
<br>
<br>
  # 出力
  # 出力
91行目: 94行目:
次に、IFSの値を空に設定して実行する。<br>
次に、IFSの値を空に設定して実行する。<br>
区切り文字として空白が設定されていないため、1列全部が変数iに格納されて、1行ずつ表示する。<br>
区切り文字として空白が設定されていないため、1列全部が変数iに格納されて、1行ずつ表示する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
103行目: 106行目:
   
   
  IFS=$OLDIFS
  IFS=$OLDIFS
  </source>
  </syntaxhighlight>
<br>
<br>
  # 出力
  # 出力
110行目: 113行目:
  g i j
  g i j
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:シェルスクリプト]]
[[カテゴリ:シェルスクリプト]]