diary/Kojima/2006-11-29
の編集
http://plamo.linet.jp/?diary/Kojima/2006-11-29
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
[[diary/Kojima]] ・最近のシェルスクリプト 大学のゼミでシェルスクリプトを読んだりしているのだけど,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 のマニュアルを斜め読みした限りではそれらしい説明は見当たらないのだけれど... 何かご存知の方があったらぜひ御教授くださいませ -Plamo-4.2 で man bash してみると、"ダ ブルクォートされた文字列の前にドル記号($)があると、文字列は現在のロケールに従って変換されます。" とありました。 -- [[立花@鎌ヶ谷市]] &new{2006-11-30 (木) 02:22:14}; -あー、なるほど、これか。 "ダブルクォートされた文字列の前にドル記号($)があると、文字 列は現在のロケールに従って変換されます。現在のロケールが C または POSIX ならば、ドル記号は無視されます。文字列が変換 されたり置換された場合には、その結果はダブルクォートされて いるのと同じ状態になります。" 「現在ロケールに従って変換される」先のデータはどういう風に持っているのかよく分からないけど、 一つ謎が解けました。どうもありがとうございます。-- [[kojima]] &new{2006-11-30 (木) 12:52:17}; #comment ・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にでも更新することにしよう. -GNU tar 1.16.1 ってのが出てますね. -- [[加藤泰文]] &new{2006-12-11 (月) 15:47:45}; #comment
タイムスタンプを変更しない
[[diary/Kojima]] ・最近のシェルスクリプト 大学のゼミでシェルスクリプトを読んだりしているのだけど,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 のマニュアルを斜め読みした限りではそれらしい説明は見当たらないのだけれど... 何かご存知の方があったらぜひ御教授くださいませ -Plamo-4.2 で man bash してみると、"ダ ブルクォートされた文字列の前にドル記号($)があると、文字列は現在のロケールに従って変換されます。" とありました。 -- [[立花@鎌ヶ谷市]] &new{2006-11-30 (木) 02:22:14}; -あー、なるほど、これか。 "ダブルクォートされた文字列の前にドル記号($)があると、文字 列は現在のロケールに従って変換されます。現在のロケールが C または POSIX ならば、ドル記号は無視されます。文字列が変換 されたり置換された場合には、その結果はダブルクォートされて いるのと同じ状態になります。" 「現在ロケールに従って変換される」先のデータはどういう風に持っているのかよく分からないけど、 一つ謎が解けました。どうもありがとうございます。-- [[kojima]] &new{2006-11-30 (木) 12:52:17}; #comment ・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にでも更新することにしよう. -GNU tar 1.16.1 ってのが出てますね. -- [[加藤泰文]] &new{2006-12-11 (月) 15:47:45}; #comment
テキスト整形のルールを表示する