MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Fishの基礎 - 繰り返し文のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Fishの基礎 - 繰り返し文
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == for文 == <syntaxhighlight lang="fish"> for <変数名> in <変数 または 式> <コマンド 1> <コマンド 2> # ... end </syntaxhighlight> <br> <code>for</code>文はループ構成であり、<コマンド>で指定されたコマンドを複数回実行する。<br> 各反復で、<変数名>で指定されたローカル変数に新しい値が代入される。<br> <変数名>が空の場合、<コマンド>は実行されずにループが終了する。<br> (この時、<変数名>には、最後に割り当てられた値が格納されている)<br> <br> <変数名>がまだ存在しない場合、ローカルスコープに設定される。<br> もし、<code>for</code>ブロックが関数内に存在しない場合、同名のグローバル変数とユニバーサル変数があれば、それが使用される。<br> <br> <code>set</code>と同様に、for文は<code>$status</code>を変更しないが、その下位のコマンドの評価によって変更される。<br> <br> <syntaxhighlight lang="fish"> for i in foo bar baz echo $i end # 出力 foo bar baz </syntaxhighlight> <br> <u>※注意</u><br> <u>Fish 3.0.0以前のバージョンでは、<変数名>は<code>for</code>ブロックのローカル変数である。</u><br> <u>ループが終了した時の<変数名>に最後に代入された値は、ループの外では使用できない。</u><br> <syntaxhighlight lang="fish"> # Fish 3.0.0以前の場合 for VAR in a b c echo -n "" end # もし、for文の実行前に変数VARが存在している場合は、その代入されていた値を出力する echo $VAR # 出力 # 何も出力されない </syntaxhighlight> <br> Fishの<code>for</code>文は、<code>$IFS</code>ではなく改行で分割する。<br> もし、改行以外で分割する場合は、<code>string split</code>、<code>string split0</code>、<code>string collect</code>を使用する。<br> <br> 以下の例では、<code>for</code>文の変数に対して、改行以外で分割して代入している。<br> <syntaxhighlight lang="fish"> for i in (find . -iname "hoge" -print0 | string split0) echo $i end </syntaxhighlight> <br><br> == while文 == <syntaxhighlight lang="fish"> while <変数 または 式> <コマンド 1> <コマンド 2> # ... end </syntaxhighlight> <br> <code>while</code>文は、<変数 または 式>を繰り返し実行して、終了ステータスが<code>0</code>であれば<コマンド>を実行する。<br> <code>while</code>文の終了ステータスは、実行された<コマンド>の最後の反復処理の終了ステータス、または、何も実行されていない場合は<code>0</code>になる。<br> (これは他のシェルと同様、POSIX互換である)<br> <br> 複雑な条件として、<code>and</code>や<code>or</code>を使用することができる。<br> <code>break</code>を含む<code>while true</code>文を使用すると、さらに複雑な制御が可能である。<br> <br> 以下の例では、foo.txtファイル、または、bar.txtファイルが存在する限り、10秒間隔でfile existsと出力している。<br> <syntaxhighlight lang="fish"> while [ -f foo.txt ] or [ -f bar.txt ] echo "file exists" sleep 10 end </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:シェルスクリプト]]
Fishの基礎 - 繰り返し文
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse