bash

「bash」の編集履歴(バックアップ)一覧はこちら

bash」(2016/04/14 (木) 18:29:04) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

-正規表現で文字列が含まれるのかを確認して、値を抜き出す BASH_REMACHという特別な変数を参照する if [[ "asd1234567890_1234" =~ ([0-9]{5})([0-9]{5})_1234 ]]; then echo ${BASH_REMATCH[0]}; echo ${BASH_REMATCH[1]}; echo ${BASH_REMATCH[2]};s fi 実行 $ bash a.sh 1234567890_1234 12345 67890 -関数の書き方 #!/bin/bash if test `whoami` != 'root'; then echo "rootユーザで起動してください。" exit 1; fi echo "shellの引数1 = $1" #戻り値設定用変数 rtn="" func() { echo "引数1 = $1" echo "引数2 = $2" # 関数内で戻り値設定用変数に戻り値を設定する return 0 } func "aaa" "bbb" RET_CODE=$? echo "戻り値=$RET_CODE" if [ $RET_CODE -eq 0 ] then echo ok else echo ng fi 実行結果 [root@localhost]# ./b.sh 123 shellの引数1 = 123 引数1 = aaa 引数2 = bbb 戻り値=0 ok -デバッグ方法 "-x"付きで起動する bash -x デバッグするシェルスクリプト -ある程度まとまった引数をコマンドに渡す方法 mysql -u root -ppassword hogedb<<EOF CREATE TABLE tbl_a AS SELECT * FROM tbl_b limit 1; delete from tbl_a EOF RET_CODE=$? if [[ ${RET_CODE} -ne 0 ]];then echo "tbl_aの作成に失敗しました:$RET_CODE" return 1 fi 例は、テーブルをコピーしつつ、データを削除する方法 EOFという文字列(先頭に空白を入れては駄目)が来るまで何行でも記載できる -ログに標準出力(1)と標準エラー(2)出力の両方をリダイレクトする スクリプト > ログファイル名 2>&1 -for分で指定回数だけまわす簡単な方法 $ for i in `yes |head -2` do echo $i done 実行結果は下記のとおり。$iは同じものが入ってしまうので、使えないが、head -nで指定したn回分だけまわしたい時は、これが一番単純かな? y y 2014/10/22

表示オプション

横に並べて表示:
変化行の前後のみ表示: