Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2822

[bash] 関数を1行で書く

$
0
0
はじめに bash等のシェルにおいて、長いコマンドを毎回打つのが面倒なとき、alias を設定しておくと便利です。 また、引数を交えてalias を設定したい場合、関数を定義することにより実現可能です。 関数定義の例 例えば、以下のコマンドを省略したいとします。 docker run -itd --name hoge 7cfg このとき、状況により変化する引数(hogeと7cfg)があるため、aliasでは対応できません。 その場合、以下のように関数を定義します。 .bashrc function dockrun(){ docker run -itd --name "$1" "$2" } すると、以下のコマンドで実行可能になります。 dockrun hoge 7cfg 1行で定義したいとき 先程の関数は便利ですが、いくつも定義しようとすると行数が多くなり、見通しが悪くなる場合があります。 かといって、単に以下のように定義するとエラーとなります。 .barhrc function dockrun(){ docker run -itd --name "$1" "$2" } エラー source ~/.bash_profile -bash: ~/.bashrc: line 3: syntax error: unexpected end of file (EOF) そのため、ワンライナーで書く場合、コマンドの終了を書いてあげる必要があります。 .bashrc function dockrun(){ docker run -itd --name "$1" "$2"; } 上記はコマンドの最後に; が加わっています。 これで、.bashrc が見辛くなる心配もありません。 ただ、無理矢理1行にするのもよくないので、適宜使い分けましょう。 その他Tips 関数定義に置いいて、function または() のいづれかは省略可能です。 ※ () を省略した場合、{ 前のスペースに注意 function dockrun { docker run -itd --name "$1" "$2"; } dockrun(){ docker run -itd --name "$1" "$2"; }

Viewing all articles
Browse latest Browse all 2822

Latest Images

Trending Articles