https://qiita.com/Ping/items/57fd75465dfada76e633
https://qiita.com/Riliumph/items/97d9f0ae2eb2d7aae587
bash xxx.sh で実行、拡張子.sh(cmdと拡張子だがあっているのか?)
代入する際は頭に$を付けず=を用いる、参照時には頭に$をつける
文字列連結は演算子不要でつなげて書くだけ
ダブルクォートで囲った中で変数があれば展開される
シングルクォートで囲った内容はただの文字列
バッククォートで囲った内容はコマンドとして認識、$()も可、入れ子も可
エスケープは\、改行の前にも入れるとバッチファイルで改行ができる
RMFILE=mysql.`date -v -"$KEEPDAY"d +%y%m%d`.gz
rm -f $RMFILE
/dev/nullはぬるぽ空ファイル、コメントアウトは#
myscript.sh >/dev/null 2>&1 # 標準出力と標準エラー出力を破棄する
somecommand 2>/dev/null # エラー出力だけ破棄する
cat /dev/null > myfile.txt # サイズ0のファイルを作る
cp /dev/null > myfile.log # 既存のファイルのサイズを0にする
出力のリダイレクト(0: 標準入力)
1>(上書き)と 1>>(追記)、1 は標準出力を意味するファイル記述子、1はデフォルトで省略可能
コマンドのエラー(標準エラー出力)は、同様に 2> と 2>>
2>&1 は標準エラー出力を標準出力にマージ、あるいはコマンド後に流す
1>&2 は標準出力を標準エラー出力にマージ、あるいはコマンド後に流す
< file 標準入力先をfileに変更
> file 標準出力先をfileに変更する。fileがすでに存在していた場合上書き
>> file 標準出力先をfileに変更する。fileがすでに存在していた場合追加
command 1>log.txt 2>errlog.txt 別々のファイルに保存する
command 2>&1 >a.log コマンドラインから実行していれば標準出力はファイルに、標準エラー出力は画面に出力
command >a.log 2>&1 標準出力と標準エラー出力の両方をファイルに出力
特殊変数$? 直前のコマンドの終了コードが$?に代入される。0(ゼロ)の場合は正常終了
if [ $? != 0 -o ! -e $DBDUMP_FILE ]; then
ifの条件式内でのオプション、というか演算子らしい
-oはORをあらわす
-d ディレクトリなら真
-f 普通のファイルなら真
-e 存在するなら真
-w 書き込み可能なら真
! 否定
https://qiita.com/egawa_kun/items/196cd354c0d8e4e0fefc
何のコマンドに対するオプションかで意味が変わるので個別に要調査
dateコマンドに+をつけてフォーマット指定 date "+%Y%m%d-%H%M%S"
MySQLダンプのスクリプト例の記事
https://www.bangboo.com/cms/blog/page_153.html