・最近のシェルスクリプト
大学のゼミでシェルスクリプトを読んだりしているのだけど,fedora core 等 の init.d にあるスクリプトではちと謎な部分が..
例えば
start() { echo -n $"Enabling nightly yum update: " touch "$lockfile" && success || failure RETVAL=$? echo } stop() { echo -n $"Disabling nightly yum update: " rm -f "$lockfile" && success || failure RETVAL=$? echo }
の echo -n $"Enabling nightly yum update:" の $ ってどういう意味がある のだろう? echo -n "Enabling nightly yum update:" でいいと思うのだけど.
#!/bin/bash で bash を明示しているところから見て,sh にはない bash の 機能を使っているのかな,という気もするが,bash のマニュアルを斜め読みした限りではそれらしい説明は見当たらないのだけれど...
何かご存知の方があったらぜひ御教授くださいませ
"ダブルクォートされた文字列の前にドル記号($)があると、文字 列は現在のロケールに従って変換されます。現在のロケールが C または POSIX ならば、ドル記号は無視されます。文字列が変換 されたり置換された場合には、その結果はダブルクォートされて いるのと同じ状態になります。"
「現在ロケールに従って変換される」先のデータはどういう風に持っているのかよく分からないけど、 一つ謎が解けました。どうもありがとうございます。-- kojima 2006-11-30 (木) 12:52:17
・tar とか
大学の実験科目で LFS を使う予定なので,手元でも VMware な環境に入れた りしているのだけど,最近(1.15以降)の tar って,圧縮ファイルを展開する際に ファイルの形式(gz か bz2 か)を自動的に認識する機能が付いてるみたい. 圧縮オプションを指定せずに
tar xvf hogehoge.tgz
とやれば gz だろうと bz2 だろうと自動的に識別して展開してくれるみたい.もちろん 従来通りの xvzf や xvjf の指定も可能で,その場合は指定した形式と違っていれば エラーになるのも従来通り.
まぁ,確かに相手の拡張子を見て xvzf か xvjf かを切り替えるのはきわめて面倒でだから, 形式の認識を tar 自身の機能として取り込むのは当然のことなんだろうな.Plamoのtarは 古い1.4でこのヘンの機能には対応していないので,最新の1.6にでも更新することにしよう.