ファイル /bin/[ は、何でしょう?
起動ディスクのルート直下のbinフォルダに [ と言うファイルがあるのですが、これは何でしょうか?
このフォルダは、Unixコマンドが格納されていると認識しています。このファイルは、何に必要なのでしょうか?
漠然としていますが、情報を求めております。確証有りませんが、10.4.xでも存在していたような気がします。
存在を確認したMacは、以下。
MacBookPor2.4GHz
OSX10.5.7
Macmini1.66GHz
OSX10.5.7
起動ディスクのルート直下のbinフォルダに [ と言うファイルがあるのですが、これは何でしょうか?
このフォルダは、Unixコマンドが格納されていると認識しています。このファイルは、何に必要なのでしょうか?
漠然としていますが、情報を求めております。確証有りませんが、10.4.xでも存在していたような気がします。
存在を確認したMacは、以下。
MacBookPor2.4GHz
OSX10.5.7
Macmini1.66GHz
OSX10.5.7
1文字ですがコマンドです。
Linuxでの説明ですが以下が参考になりますか。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230705/?ST=oss
なるほど、条件式のコマンドでしたか。シェルスクリプトと言うのでしょうか、勉強中なのですが抜本的に理解できてません。(人生やり直すくらいの気合いを入れないと無理と思っております^^)
OSXの10.xのいつ頃から存在していたのでしょうか?
Unixの歴史的に何故にこのような名前になたのでしょう。ご存じでしたら、お教えください。
if [ 条件式 ] then
command 1
else
command 2
fi
この様に条件で分岐処理を行うのに使います。その定義だと思います。
# /binは重要なUNIX Commandが入ってますので弄ると起動出来なくなります。
ぴっぴ による書き込み:
(一部略)
# /binは重要なUNIX Commandが入ってますので弄ると起動出来なくなります。
重要で有ることは、直感的に理解しております。ただ、私の中のゴースト(意味不明でしたら読み飛ばしてください)がささやくんですよ。「消してみたら」と。
ni_ki による書き込み:
「消してみたら」と。
バックアップを取り元に戻せる状態にして試して見るのが一番です。
失敗は成功の肥やしとなりますから。
ni_ki による書き込み:
私の中のゴースト(意味不明でしたら読み飛ばしてください)がささやくんですよ。「消してみたら」と。
"[" は MacOSX のシステムでも起動スクリプトなどに多用されています。(Unix 起源のシステムならどれでもそうです)
消してもいいけど、最悪、起動しなくなるかもしれません。そうでなくてもいろいろ不具合が起きる可能性があります。
どうなったか報告してね。
ni_kiさん による書き込み:
私の中のゴースト(意味不明でしたら読み飛ばしてください)がささやくんですよ。「消してみたら」と。
We are hanging here. あるいは他のAlertが拝めるかも。
# Verbose ModeかSingle User Modeで起動しないと...
行って参ります。
ただいま、戻りました。
MacBookPro2.4GHz
OSX10.5.7
の環境で /bin/[ を削除してOSXを使用しおりますが、見た目なんの問題もなく起動しております。SafariとAdobe Bridge位しか使ってませんけど。
試しにOnyX2.0.4(10.5.7に対応していないのではないかと期待して)を起動し、日時、週次、月次スクリプト(スクリプトの実行に[を使うかもと期待して)を実行してみましたが、異常なく終了しました。
セーフブートもdyldや一部のキャッシュを削除する際に、[を使うかも知れないと思って、試しましたが、いつも通りに起動いたしました。
ただ、logを確認すると、
mdworker[227] FolderManager: Failed looking up user domain root; url='file://localhost/var/empty/' path=/var/empty/ err=-43 uid=89 euid=89
とのエラーメッセージが多くなるようです。このエラーは、あくまでも多くなるだけで、通常のままでも有る程度、発生しているようです。他のログに異常は、見つけられませんでした。
以上、ご報告まで。
このメッセージは次により編集されています: ni_ki 今日は、この実験で終電まで引っ張れると思ったのですが、問題なく起動してしまったので、本日は「やきざけ」で終了します。
LeopardはPerlを使っているのかも?
if (条件文) { 真文 }
else { 偽文 }
文字クラス
[q-z] 英小文字の何れかの1文字
[A-Z] 英大文字の何れかの1文字
Perlだとこんな感じです。
# Perlを勉強したいので本を物色中です。
TigerだとOpen Firmwareの中で使われています。
sh /etc/rc
Open FirmwareからHDDに移る時に実行するScriptです。
これにも沢山の If [ ] then が使われてます。私は試す考えはありませんが...
Leopardでも [ を使っているScriptがあると思いますので早急に戻したほうが安全です。
ni_ki さんによる書き込み:
ただいま、戻りました。
シェルの組み込みコマンドでもあるので大丈夫なようですね。
確認済みだったのでしょうか。
$ type [
[ is a shell builtin
さすがに長時間の実験は、不測の事態を招きかねないので、/binの中に戻しましたが、皆様の書込から「まともに起動しない」を予想していました。
起動した時点で、どこかに組み込まれていると推測しておりました。いろいろ、おつき合いありがとうございました。
ファイル /bin/[ は、何でしょう?