T2T2’s diary

アウトプット

210325アウトプット 帰宅して2時間の学習

日の振り返り】

間】私の行動の前に時間は平伏すが、結局時間でしか計測出来ない

・7h:睡眠

・2h:ブログ+思考日誌+TwitterFacebook+0秒思考

・9h:仕事(AWS関係)

・0.5h:Linuxスマホ読書)

・2h:Linux

・3.5h:その他

 

動】今日はどんな遊びをしたのか?

 とタイトルに書くくらい、やっと学習出来たよ。仕事的には忙しい時期だけども仕事がない日は積極的に家に帰って学習の時間をとる。

 スタートし始めてから、休憩はいれながらも勉強が続けられたことには一安心。もしかしたら仕事が忙しくて、そんな煽りから勉強し始めたらアレルギーが出てしまったらどうしようかと思っていたが杞憂だったらしい。まだ向上心があって何より。それに学ぶことは面倒だが、面白いのである。

 よかったよかった。

 と今日は学習できたらからめでたしめでたしではない、何度だって幕は上がる。明日は金曜日で30日(火)には、仕事の成果物をクライアント様に提出もあるので今日のようにはいかないだろうけど、それが終われば土日を迎えて思いっきり羽を伸ばして学習しよう。

 少しは変革を起こせたのだろうか。

日のコード】計算ドリルの文章問題いつだって現実と乖離している。

感想:2時間くらいコードを書く。やらねば、強くはなれないのよ。

【select文】
````
#!/usr/bin/bash

select var in apple banana lemon exit
do
echo $var
if [ $var = 'exit' ]; then
break
fi
done
echo 'select exit'
````
【select文】
空白の際にエラーが表示されるのでコード変更
````
#!/usr/bin/bash

select var in apple banana lemon exit
do
if [ -z $var ]; then
continue
elif [ $var = 'exit' ]; then
break
else
echo $var
fi
done
echo 'select exit'
````
【関数】
````
#!/usr/bin/bash

function print_hello(){
echo 'Hello Woorld'
echo $1
}

print_hello 'I am Taro'
````
【local関数】
````
#!/usr/bin/bash

function print_hello(){
echo 'Hello Woorld'
echo $1
}
#ここに"local"と打つことによって、このfunctionの中だけ引数は利用されるようになる
function set_name(){
local name=$1
echo function: $name
}

print_hello 'I am Taro'
name='Taro'
echo before: $name
set_name 'Hanako'
echo after: $name
````
【readonly】値が変更できなくなる
````
#!/usr/bin/bash

#readonlyが記述されることで変数の変更ができなくなる(一度読み込みんだものだけ)
var=12
echo $var
readonly var
var=20
echo $var
````
【readonly】関数での利用(変数の値と内容は同じ)
````
#!/usr/bin/bash

#readonlyが記述されることで変数の変更ができなくなる(一度読み込みんだものだけ)
function print_hello(){
echo 'A Hello'
}

print_hello
# -f functionを固定させることによって一度目の結果を変更できないようにできる
readonly -f print_hello

function print_hello(){
echo 'B Hello'
}

print_hello

````
【pid】
プロセスIDを用いるて利用する
自分のプロセスIDを調べる場合
pid is $$


````
#!/usr/bin/bash

#Pid,trapについて
#このプロセスIDが表示される
echo pid is $$
sleep 100
````
#ターミナルの分割(Alt+D)して検索
ps -ef | grep pid番号
kill -9 pid番号

【trap】
trapコマンドを利用することでプログラム終了時の挙動を設定出来る
1:再起動
2:割り込み
9:強制終了
15:プロセス終了
````
#!/usr/bin/bash

#trap プロセス通常終了(=0)の場合trapの文言が表示される

trap "echo process end" 0

for i in `seq 1 10`;
do
echo $i
done

````
【trap】関数
````
#!/usr/bin/bash

#trap 2は割り込みが怒った場合に起動する
function cleanup(){
echo '割り込みコマンドが発生しました'
rm ./tmp_*.txt
exit 1
}
echo $$ > tmp_$$.txt

trap "cleanup" 2

for i in `seq 1 100`;
do
echo $i
sleep 1
done
````

おまけ
正規表現でファイルを削除する
rm -rf *.txt

````
#!/usr/bin/bash

#trap 2は割り込みが怒った場合に起動する
function cleanup(){
echo '割り込みコマンドが発生しました'
rm ./tmp_*.txt
exit 1
}

function stop_15(){
echo 'kill 15でストップしました'
exit 1
}

echo $$ > tmp_$$.txt


trap "cleanup" 0 2
trap "stop_15" 15

for i in `seq 1 100`;
do
echo $i
sleep 1
done
````