Linux標準教科書2.0.0を読んだ

自分にはもう必要ないかもと思いながら積読状態だった Linux標準教科書 を読みました。
以外と知らないこともあり勉強になりました。
基礎大事。

shellのデバッグ(sh -x) : 9.8 デバッグ(P.177)

新人の頃shellを書きまくって、print debugしまくってた自分に教えてあげたい。
 
例として分かりにくいかもしれませんが、 -x をつけて実行すると
コマンドや変数の中身を表示しながら実行してくれます。

sampleとしては若干見にくいかもしれないですが

$ cat samle.sh
while true
do
  echo "Continue? (y/n)"
  read input
  case $input in
    n) break
      ;;
    y) continue
      ;;
    *) echo "Please input y or n."
      ;;
    esac
done

これを -x 付きで実行すると

$ sh -x ./sample.sh
+ true
+ echo 'Continue? (y/n)'
Continue? (y/n)
+ read input
y
+ case $input in
+ continue
+ true
+ echo 'Continue? (y/n)'
Continue? (y/n)
+ read input
n
+ case $input in
+ break

という感じで実行内容が見れます。

select: 9.5.3 select文(P.159)

おお、こんなのあったのかという感じです。

select name in "apple" "banana" "orange"
do
  echo "You selected $name";
done

実行結果。

$ sh select.sh
1) apple
2) banana
3) orange
#? 3
You selected orange

manセクション: 3.7.1 セクション(P.53)

ときどき何だったっけとなるのでメモ。

項目 内容
1 ユーザコマンド
2 システムコール
3 システムライブラリや関数
4 バイスデバイスドライバ
5 ファイルの形式
6 ゲームやデモなど
7 その他
8 システム管理系のコマンド
9 カーネル等の情報
man 5 passwd

まとめ

基本的なことはまとまって記載されているのでLinux知らない人は読むべし。
基礎重要。