- ベストアンサー
シェルコマンドについて
初歩的な質問ですが、質問させてください。 現在MacPortsでApacheやPHP、MySQLなどをインストーをしているのですが、その中で以下のようなコマンドの実行を促されます。 //MySQLインストール時 cd /opt/local; /opt/local/lib/mysql5/bin/mysqld_safe & や //PHPインストール時 cd /opt/local/apache2/modules /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so ここで疑問なのが、cdの以下に続く cd /opt/local; や cd /opt/local/apache2/modules の実行についてです。 実際このコマンドは実行しなくてもカレントディレクトリが変わるだけで、特に意味のなさそうなコマンドなのですが、何か理由があるのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>新たに別のディレクトリのファイルを実行するのかが不思議なんですよね。 >cd /opt/local; /opt/local/lib/mysql5/bin/mysqld_safe & mysqld_safeを絶対パスで実行しているので 最初のディレクトリ移動は無意味です >cd /opt/local/apache2/modules >/opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so apxsの引数でlibpho5.soが相対パス指定なので 最初ののディレクトリ移動には意味があります
その他の回答 (2)
コマンドラインで2つのコマンドを入力する場合、普通は2行に分けて書きますよね 例えば、 cd /hogehoge ls *.txt のようにね コレを1行で記述する場合、セミコロンで区切ってタイプします 上記を1行で書くと cd /hogehoge;ls *.txt 要するに、シェルに対して、コマンドの終わりはココまでですよと教えてあげる文字がセミコロンです
お礼
お返事ありがとうございます。 セミコロンで一旦、コマンドが区切られるようですね。 問題は、なぜcd /opt/localや/opt/local/apache2/modulesなどカレントディレクトリを移した上で、新たに別のディレクトリのファイルを実行するのかが不思議なんですよね。 インストール時にコマンドを実行するように表示されるので何かしらの理由があると思うのですが...。 もし、お分かりでしたらお返事ください。
- zionic
- ベストアンサー率39% (31/79)
実行しているコマンドが、/opt/localや/opt/local/apache2/modulesがカレントディレクトリであることを前提にして起動しているから、とか。
お礼
お返事ありがとうございます。 MySQLインストール時の cd /opt/local のディレクトリ内を見てみたのですが、ファイルは存在せず、ディレクトリのみ複数存在する状態です。 PHPインストール時の cd /opt/local/apache2/modules のディレクトリには後のコマンドに現れるlibphp5.soが存在します。 MySQLの方はなぜこのコマンドが必要なのか分かりませんが、PHPの方は/opt/local/apache2/modulesをカレントディレクトリする何らかの理由があるのかもしれませんね。 もう少し調べてみます。
お礼
お返事ありがとうございます。 cd /opt/local/apache2/modules はlibphp5.soの指定に必要だったんですね。 納得です。