📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「source lang」を「syntaxhighlight lang」に置換 |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 15行目: | 15行目: | ||
echo "File exists." | echo "File exists." | ||
fi | fi | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
===== ファイルが存在しない場合 ===== | ===== ファイルが存在しない場合 ===== | ||
| 30行目: | 30行目: | ||
exit -1 | exit -1 | ||
fi | fi | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 45行目: | 45行目: | ||
echo "Directory exists." | echo "Directory exists." | ||
fi | fi | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
===== ディレクトリが存在しない場合 ===== | ===== ディレクトリが存在しない場合 ===== | ||
| 60行目: | 60行目: | ||
exit -1 | exit -1 | ||
fi | fi | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 129行目: | 129行目: | ||
== ファイルの処理 == | == ファイルの処理 == | ||
==== ワイルドカードの使用 ==== | ==== ワイルドカードの使用 ==== | ||
ワイルドカード(*)を使用して、カレントディレクトリ内のファイルを順に処理することができる。 | ワイルドカード(*)を使用して、カレントディレクトリ内のファイルを順に処理することができる。<br> | ||
以下の例では、全てのファイルを繰り返し処理している。 | 以下の例では、全てのファイルを繰り返し処理している。<br> | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
for FILENAME in *; do | for FILENAME in *; do | ||
echo "$FILENAME" | echo "$FILENAME" | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
特定の拡張子を持つファイルのみを列挙する場合は、以下のように記述する。 | 特定の拡張子を持つファイルのみを列挙する場合は、以下のように記述する。<br> | ||
以下の例では、全てのPNGファイルを繰り返し処理している。 | 以下の例では、全てのPNGファイルを繰り返し処理している。<br> | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
for PNGFILE in *.png; do | for PNGFILE in *.png; do | ||
echo "$PNGFILE" | echo "$PNGFILE" | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
また、次のように1行で記述することもできる。 | また、次のように1行で記述することもできる。<br> | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
for PNGFILE in *.png; do echo "$PNGFILE"; done | for PNGFILE in *.png; do echo "$PNGFILE"; done | ||
</ | </syntaxhighlight> | ||
<br> | |||
ワイルドカードを使用する場合、アスタリスク(*)をクォートの中に入れると、シェルによるワイルドカードの展開が行われない。<br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
# 推奨する記述 | |||
## パス部分は安全にクォートされて、アスタリスクはワイルドカードとして機能する | |||
rm -r "$HOME/.cache/"* | |||
# 間違った記述 | |||
## アスタリスクがクォート内にあるため、*は文字列として扱われてワイルドカードとして機能しない | |||
rm -r "$HOME/.cache/*" | |||
## パスにスペースが含まれている場合、パスが正しく解釈されない | |||
## また、変数が未定義の場合、意図しない動作につながる可能性がある | |||
rm -r $HOME/.cache/* | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== findコマンドの結果の使用(再帰処理) ==== | ==== findコマンドの結果の使用(再帰処理) ==== | ||
以下の例では、findコマンドで検索したファイルを、while文で順に処理している。 | 以下の例では、findコマンドで検索したファイルを、while文で順に処理している。 | ||
| 157行目: | 174行目: | ||
echo "$FILENAME" | echo "$FILENAME" | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 178行目: | 195行目: | ||
# 出力 | # 出力 | ||
AAA 100 | AAA 100 | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== 標準入力へリダイレクトさせて読み込む ==== | ==== 標準入力へリダイレクトさせて読み込む ==== | ||
| 194行目: | 211行目: | ||
two | two | ||
three | three | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== ファイルを変数に格納して読み込む ==== | ==== ファイルを変数に格納して読み込む ==== | ||
| 212行目: | 229行目: | ||
two | two | ||
three | three | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== catコマンドでファイル内容を表示してパイプで渡す ==== | ==== catコマンドでファイル内容を表示してパイプで渡す ==== | ||
| 228行目: | 245行目: | ||
two | two | ||
three | three | ||
</ | </syntaxhighlight> | ||
<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__ | ||
[[カテゴリ:シェルスクリプト]] | [[カテゴリ:シェルスクリプト]] | ||