Authentication




Cancel OK
B!コメントする  2015-12-27 01:01:00 by admin

シェルスクリプトでだいたいこれだけあればだいたいのことは出来てる

あくまで個人的にはですけど・・・

□ID(y******)引き抜き
id | cut -d" " -f 1 | sed -e "s/^.((.)).*$/\1/g"

□Hostname(host123)引き抜き
hostname | cut -d"." -f 1

□CPU稼働率だけ取得
top -b -n 1 | grep "load average" | awk '{print $12 $13 $14}'

□計算
$((${CNT}%2))

□インクリメント
(( COUNT++ ))

□ファイル追記
echo abc >> TEXT.dat

□変数に追記
# 変数に追記($Aにaを追記)
A=`echo ${A}a`
A="${A}a"

□0詰め
pid=`printf %08d $$`

□文字色
COLORS="\e[33m"
COLOR
E="\e[m"
echo -e "${COLORS}hoge${COLORE}"

□ファイルサイズ
wc -c < test.txt | cut -d" " -f 1

□タグ内の値のみ取得
XML="<Cache>SAMPLE VALUE</Cache>"
RESULT=`echo "$XML" | sed -e "s/<Cache>(.*)<\/Cache>/\1/g"`

□乱数
expr $RANDOM % 100

□配列数($SAMPLE)
${#SAMPLE[*]}

□文字数($SAMPLE)
${#SAMPLE}

□文字数切り出し($CHRの3文字目から1文字)
${CHR:3:1}

□四則演算(余り計算:exprは遅すぎ論外)
REM=$(($CNT%10))

□文字追加
LIMIT=1
while [ $LIMIT -ne 10 ]
do
echo -en "-"; sleep 0.05
done

□外部ファイル読み込み
while read x; do
echo $x
done < sample.txt

□HELPもどき
getoptとかでもっとシンプルにいけるけど、使えない場合があるので泥臭い方法での実装
# Help
if [[ ${1} =~ ^-[hH]$ ]]; then
echo "Arguments:"
echo " -h Print Help (this message) and exit"
echo " -v Print version information and exit"
exit 0
elif [[ ${1} =~ ^-[vV]$ ]]; then
echo "+----------------------+"
echo " Script : sample_monitor"
echo " Create : 2015/01/01"
echo " Version: 0.0.1"
echo "+----------------------+"
exit 0
fi

□TPUT
これ使えるとコンソールの右上にモニターとか出すことが出来て便利
# 初期化
TCUPCNT=0
while :
do
if [[ $((${TCUP
CNT}%5)) = 0 ]]; then
cmd="---(TxT)----"
elif [[ $((${TCUPCNT}%2)) = 0 ]]; then
cmd="-
--(TT)----"
else
cmd="---(TT)----"
fi
echo -n -e "\033[s"
C=$((`tput cols` - 18))
tput cup 0 $C
COLOR=`tput setaf 2; tput smso`
NORMAL=`tput sgr0`
echo -n $COLOR$cmd$NORMAL
echo -n -e "\033[u"
((TCUP
CNT++))
sleep 1
done

挙げていくとキリがないけどこれらとコマンドを組み合わせていけばだいたい出来る。

バッククォートあるとMarkdownがうまく機能しないことに初めて気がついた・・・
いや、機能はしてるんだけどエスケープとかの関係でおかしくなる・・・


シェル TIPS 開発  

  • コメント
  • コメントはまだありません