シェルスクリプト完全初級レベルですが、覚えたコマンドなど少しずつ蓄積していく記事にしたいと思います。
はじめに
ファイル名
ファイル名.sh
ファイル冒頭
#!/bin/bash
変数
moji_hensu="abc" num_hensu=123
制御文
if文
if [ 条件式]; then echo "条件式はtrueです" else echo "条件式はfalseです" fi
条件式
比較 = (equal)
if [ $var_x -eq $var_y ]; then
比較 NOT = (not equal)
if [ $var_x -ne $var_y ]; then
比較 < (less than)
if [ $var_x -lt $var_y ]; then
比較 <= (less than or equal to)
if [ $var_x -le $var_y ]; then
比較 > (greater than)
if [ $var_x -gt $var_y ]; then
比較 >= (greater than or equal to)
if [ $var_x -ge $var_y ]; then
ディレクトリ存在確認
#!/bin/bash
DIR="test_dir"
if [ -d ${DIR} ]; then
echo "存在する"
fi
ファイル存在確認
#!/bin/bash
FILE="test_file"
if [ -f ${FILE} ]; then
echo "存在する"
fi
文字列操作
awk
記載中
MySQL
MySQLに接続してクエリを投げて結果をループで処理する
#!/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
ワンライナーシェルスクリプトでファイル名一括置換する
https://normalblog.net/system/file-rename/
if 未定義や空白条件をチェック
if [ -z $TARGET ]; then
echo 'undefined or space'
else
echo 'ok'
fi
# 結果
# TARGET="" の時 'undefined or space'
# unset TARGETしてからの時 'undefined or space'
# TARGET="abc"の時 'ok'
変数を置換して変数に格納
BEFORE=xyz
AFTER=`echo ${BEFORE} | sed -e 's/x/y/g'`
echo $AFTER # yyz
変数の中身を大文字から小文字に変換して変数に格納
TARGET="ABC"
RESULT=$(echo $TARGET | tr '[:upper:]' '[:lower:]')
echo $RESULT # abc
json戻り値整形
jq 別途記載予定
置換
sed ‘s/x/y/g’
tr ‘x’ ‘y’
