シェルスクリプト
#シェル芸
#!/bin/bash
変数
table:変数
$0 スクリプト名
$# スクリプトに与えた引数の数
$? 直前実行したコマンドの終了値
0→成功、1→失敗
$@ 全部の引数
$$ コマンド自身のPID。 echo $$
存在しないファイルも全部まとめて生成してくれる
mkdir -p
変数の初期化にifを使わない
hoge=${1:-default}
DATE=${2:-$(TZ=Asia/Tokyo date "+%Y-%m-%d")}
https://qiita.com/bsdhack/items/597eb7daee4a8b3276ba
配列を作成する
array=()
code:shell
foo=a,b,c,d,f,e,g
list=(${foo//,/ })
echo ${line1}
forループ
code:shell
for i in 1 2 3; do echo $i; done
for i in {1..3}; do echo $i; done
for (( i=1; i<4; i++ )); do echo $i ; done
array=(1 2 3); for i in ${array@}; do echo $i;done
code:bash
for ((i=1;i<=10;i++)) ; do
echo "${i}"
done
bashの機能でCっぽい感じで書ける
何もしないコマンド:
code:shell
if -z "$arg" ; then
echo "デフォルトモード開始"
else
# カスタムモード:あとで書く
:
fi
仮置きしたり
code:shell
# こう書くよりも
if -z "$parameter" ; then
parameter=word
fi
# こう書くよりも
parameter=${parameter:-word}
# こう書いたほうが簡潔
: ${parameter:=word}
副作用のためにつかったり
シェルスクリプトで自己追記FizzBuzz
Qiita:何もしない組み込みコマンド ":" (コロン)の使い道
エラーがあったら途中で処理を打ち止めてシェルスクリプト全体を終了
set -e
途中でエラー起こったのに最後まで突っ走るのを止めれる
set +e
で途中から元に戻すこともできる
/diary-hiroki/2022/2/2
未定義の変数を使おうとした途端に打ち止めてくれる
set -u
実行するコマンドを出力
set -x
Tips
!でコマンドの終了コードを反転できる
https://gyazo.com/e3e921aeda00962229ab9ccad7a2247f
https://qiita.com/ko1nksm/items/9650ed1fc21d668f2732