MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
BashユーザのためのFishのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
BashユーザのためのFish
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Fishは、POSIX互換ではないため、Bash等の他のシェルとは異なる動作をするものがある。<br> <br> いずれのシェルも、基本的にコマンドラインの拡張、パイプ、リダイレクト、変数、グロブを備えており、様々な方法でコマンド出力を使用する。<br> <br><br> == コマンドの置換 == Fishはコマンド置換を、<code>$(command)</code>、または、<code>(command)</code>と記述する。<br> <br><br> == 変数 == Fishは、<code>set</code>コマンドにより変数の設定や消去を行う。<br> また、<code>declare</code>コマンド、<code>unset</code>コマンド、<code>export</code>コマンド等の様々な個別の組み込みを行う。<br> <br> 例えば、<code>set</code>コマンドは、オプションで変数のスコープやエクスポートの可否を決定する。<br> <syntaxhighlight lang="fish"> # 変数PAGERをグローバルに定義およびエクスポートすることにより、export PAGER=lessと同様になる set -gx PAGER less # alocalvariable=fooのように、$alocalvariableをローカルにのみ定義する set -l alocalvariable foo </syntaxhighlight> <br> 変数を消去する。<br> <syntaxhighlight lang="fish"> set -e PAGER </syntaxhighlight> <br> <code><変数名>=<値></code>文は、環境のオーバーライドとして利用できる。<br> <syntaxhighlight lang="fish"> PAGER=cat git log </syntaxhighlight> <br> Fishは、単語の分割を行わないため、変数に値が設定されると、その値はそのまま維持される。<br> そのため、Bashのように変数の展開をダブルクオートで記述する必要はない。<br> <syntaxhighlight lang="bash"> # Bashの場合 # ダブルクォートを使用していないため、ワードスプリッティング(2行で表示)となる foo="bar baz" printf '%s\n' $foo # 出力 bar baz </syntaxhighlight> <br> <syntaxhighlight lang="fish"> # Fishの場合 # 変数fooは1つの要素として設定されているため、1つの要素として渡される (1行で表示される) set foo "bar baz" printf '%s\n' $foo # 出力 foo baz </syntaxhighlight> <br> 変数は全て配列(リスト)であるため、変数を展開するとその全ての要素が展開される。<br> 配列の各要素は、それ自身の引数となる。(Bashでいう<code>${var[@]}</code>と同様)<br> <syntaxhighlight lang="fish"> set var "foo bar" banana printf '%s\n' $var # 出力 foo bar banana </syntaxhighlight> <br> リストの特定の要素を選択することができます。<br> <syntaxhighlight lang="fish"> echo $list[5..7] </syntaxhighlight> <br> <code>set</code>コマンドを使用して、コマンドの出力に変数を設定することも可能である。<br> <syntaxhighlight lang="fish"> # 変数lineにfile.txtファイル内の全ての内容を設定して、1行に1つの要素を設定する set lines (cat file.txt) </syntaxhighlight> <br> リテラル値とコマンドを混在させて、変数に代入することも可能である。<br> <syntaxhighlight lang="fish"> set numbers 1 2 3 (seq 5 8) 9 printf '%s\n' $numbers # 出力 1 2 3 5 6 7 8 9 </syntaxhighlight> <br> <code>set <変数名> = <値></code>コマンドは間違ったシンタックスであり、変数に2つの値(=と<値>)を代入してしまう。<br> <br><br> __FORCETOC__ [[カテゴリ:シェルスクリプト]]
BashユーザのためのFish
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse