シェルスクリプト完全初級レベルですが、覚えたコマンドなど少しずつ蓄積していく記事にしたいと思います。
見出し
はじめに
ファイル名
1 |
ファイル名.sh |
ファイル冒頭
1 |
#!/bin/bash |
変数
1 2 |
moji_hensu="abc" num_hensu=123 |
制御文
if文
1 2 3 4 5 |
if [ 条件式]; then echo "条件式はtrueです" else echo "条件式はfalseです" fi |
条件式
比較 = (equal)
1 |
if [ $var_x -eq $var_y ]; then |
比較 NOT = (not equal)
1 |
if [ $var_x -ne $var_y ]; then |
比較 < (less than)
1 |
if [ $var_x -lt $var_y ]; then |
比較 <= (less than or equal to)
1 |
if [ $var_x -le $var_y ]; then |
比較 > (greater than)
1 |
if [ $var_x -gt $var_y ]; then |
比較 >= (greater than or equal to)
1 |
if [ $var_x -ge $var_y ]; then |
ディレクトリ存在確認
1 2 3 4 5 |
#!/bin/bash DIR="test_dir" if [ -d ${DIR} ]; then echo "存在する" fi |
ファイル存在確認
1 2 3 4 5 |
#!/bin/bash FILE="test_file" if [ -f ${FILE} ]; then echo "存在する" fi |
文字列操作
awk
記載中
MySQL
MySQLに接続してクエリを投げて結果をループで処理する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/sh #データベース設定 DATA_BASE_USER=xxx DATA_BASE_PATH=xxx DATA_BASE_NAME=xxx DATA_BASE_HOST=xxx SQL_QUERY="select id from test_tables;" result=`mysql -u${DATA_BASE_USER} -p${DATA_BASE_PATH} -A ${DATA_BASE_NAME} -h ${DATA_BASE_HOST} -e "${SQL_QUERY}"` #結果でループ if [[ $? -eq 0 ]]; then for value in ${result} do echo ${value} done else echo "fail to select from mysql." fi |
ワンライナーシェルスクリプトでファイル名一括置換する
ワンライナーシェルスクリプトでファイル名一括置換しました。
あるサイトをブラウザから表示されている内容を解析しようと右クリックでファイ...
if 未定義や空白条件をチェック
1 2 3 4 5 6 7 8 9 10 |
if [ -z $TARGET ]; then echo 'undefined or space' else echo 'ok' fi # 結果 # TARGET="" の時 'undefined or space' # unset TARGETしてからの時 'undefined or space' # TARGET="abc"の時 'ok' |
変数を置換して変数に格納
1 2 3 |
BEFORE=xyz AFTER=`echo ${BEFORE} | sed -e 's/x/y/g'` echo $AFTER # yyz |
変数の中身を大文字から小文字に変換して変数に格納
1 2 3 |
TARGET="ABC" RESULT=$(echo $TARGET | tr '[:upper:]' '[:lower:]') echo $RESULT # abc |
json戻り値整形
jq 別途記載予定
置換
sed ‘s/x/y/g’
tr ‘x’ ‘y’