Bash
https://raw.githubusercontent.com/odb/official-bash-logo/master/assets/Logos/Icons/SVG/512x512.svg
関数に渡ってきた引数に名前をつける
関数に渡ってきた引数は $1 $2 $3 あるいはその他の組み込み関数で取得できる
複雑なスクリプトを書いているとき何番目がなんだったっけとなることはあるので受け取った瞬間変数に入れてしまうと良い
名前をつけた引数は shift で直後にスライドすると次の行でも $1 で参照できて便利
引数の順番を入れ替えるときもラク
code:sh
function something() {
local readonly FOO="$1"; shift
local readonly BAR="$1"; shift
echo foo:$FOO, bar:$BAR
}
something x y
関数をエクスポートして使う
定義した関数をサブシェルなどで使用する場合 export -f を使用する
エクスポートせず実行すると未定義の関数としてエラーになる
xargs などと組み合わせて並列処理をシェルスクリプトで手軽に実現したいときには便利 code:sh
function something() {
sleep $((RANDOM % 3 + 1))
}
# something を export する
export -f something
# 64個のタスクを4並列で実行する
seq 64 | xargs -P4 -I@ bash -c 'something @'