2018年12月6日木曜日

シェル 引用符で囲まれた文字列内の空白について

2018 Dec. 06.

bash上で 'ls -l'という文字列を格納した変数とディレクトリを格納した変数をスペースで区切って次のようにシェルに入力すると"ls -l: コマンドが見つかりません"となる。
一方、変数を引用符で囲ますにシェルに与えると"ls -l"の結果が出力される。
シェルにおける空白の解釈
・クォートで囲まれた文字列内の空白は単なる文字(変数文字列のトークンの一部)
・シェルにとって、引用符に囲まれていない空白は文字ではなく区切り記号

$ 'ls -l' '/'
ls -l: コマンドが見つかりません

$ "ls -l" "/"
ls -l: コマンドが見つかりません

$ s1='ls -l'
$ s2='/'
$ "$s1" "$s2"
ls -l: コマンドが見つかりません

$ s1='ls -l'
$ s2='/'
$ $s1 $s2
(ls -lの結果が出力される)

2018年12月1日土曜日

カーネルモジュールが置かれる場所

2018 Dec. 01.

カーネルモジュールは
 /lib/modules/`uname -r`/kernel/
に置かれる。

例)pt2ドライバー
/lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko