#author("2020-11-26T11:44:15+09:00","default:Miyashita","Miyashita") #author("2020-11-26T11:45:10+09:00","default:Miyashita","Miyashita") *bash シェルスクリプト メモ [#vaf07869] コメントは「#」,改行して記述の継続は「\」(バックスラッシュ). ***「*.sh」ファイルの1行目 [#t064b4fa] シバンというらしい.~ #codeprettify{{ #!/bin/bash }} ここでインタプリタを定義するので,bashでない場合はそれに対応したコマンドを選択すれば良い(/bin/shとか/bin/fishとか). ***引用符の区別 [#g99916a0] ' (シングルクォート) 中身を文字列として扱う~ " (ダブルクォート) 変数${PATH}などは展開する~ ` (バッククォート) 中身をコマンドとして実行し,その結果を返す~ #codeprettify{{ $ echo '$PATH' $PATH $ echo "$PATH" /usr/local/bin:/usr/sbin: ..... $ ls -l `which git` -rwxr-xr-x 1 root root 2205840 m月 dd HH:MM /usr/bin/git }} ***AND,OR表現 [#ddb27e4f] foo,barという2つの判定式があるとして, -AND #codeprettify{{ if [ foo ] && [ bar ]; then }} #codeprettify{{ if [ foo -a bar ]; then }} -OR #codeprettify{{ if [ foo ] || [ bar ]; then }} #codeprettify{{ if [ foo -o bar ]; then }} ***変数$varが空かどうか確認 [#m6039701] 長さがゼロがどうかを判定するには「-z」で,ゼロでないかどうかの判定は「-n」. #codeprettify{{ if [ -z "$var" ]; then echo empty fi }} 注意すべき点として,ダブルクォーテーション「""」を変数の両端に付さないと,変数が空の場合にエラーを返す.~ また角括弧[]と内側の記述にはスペースを開けなければならない."[-z"というのは✕ ***変数の文字列置換 [#p5b499c6] ①: %, # #codeprettify{{ ${var%/*} # ① "/" 以降を切り取り }} ②: %%, ## #codeprettify{{ ${var##*/} ② "/" 以前を切り取り ${var##*/} # ② "/" 以前を切り取り }} ③:変数varに含まれるorgの文字列がnewに変わる.~ #codeprettify{{ ${var//org/new} #③ }} #codeprettify{{ # 例 $ var=abcdefg $ echo ${var%d*} abc $ echo ${var#*d} efg $ echo ${var//abc/ABC} ABCdefg }} ***バックグラウンドのプロセスIDの表示 [#racfc077] #codeprettify{{ $! }} で最後に実行したバックグラウンドプロセスのIDを示す.~ psでたくさん出して絞り込むよりはこちらの方が楽.