シェルスクリプトまとめ

シェルスクリプトまとめ

シェルスクリプト完全初級レベルですが、覚えたコマンドなど少しずつ蓄積していく記事にしたいと思います。

はじめに

ファイル名

ファイル名.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’

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です