関連するシステムの背景:
- OSXでMAMPを使用しています。
- の出力
which php
は/Applications/MAMP/bin/php/php5.3.14/bin/php
- の出力
which drush
は/Applications/MAMP/bin/php/php5.3.14/bin/drush
- の出力
which bash
は/bin/bash
- Drush コマンドは、コマンド ラインから直接呼び出されると正常に機能します。
- $PATH =
/Users/me/.rvm/gems/ruby-2.1.2/bin:/Users/me/.rvm/gems/ruby-2.1.2@global/bin:/Users/me/.rvm/rubies/ruby-2.1.2/bin:/usr/local/bin/composer:/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php5.3.14/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/Applications/MAMP/Library:/Users/me/bin:/Users/me/.rvm/bin:/Applications/MAMP/bin/php/php5.3.14/bin/drush
スクリプト (test.sh):
#!/bin/bash
drush status
実行結果$ ./test.sh
:
: No such file or directoryphp5.3.14/bin/drush: line 1: /bin/bash
: command not foundbin/php/php5.3.14/bin/drush: line 9:
: No such file or directoryphp5.3.14/bin/drush: line 12: cd: /Applications/MAMP/bin/php/php5.3.14/bin
: command not foundbin/php/php5.3.14/bin/drush: line 13:
'Applications/MAMP/bin/php/php5.3.14/bin/drush: line 16: syntax error near unexpected token `in
'Applications/MAMP/bin/php/php5.3.14/bin/drush: line 16: ` case "`uname -a`" in
困惑しています。マジッククォートがオフになっていることなどを確認しました。他に何を探せばいいのかわかりません。ああ、同じスクリプトは、実質的に同一の設定を使用している別のラップトップでは問題なく実行されます。
答え1
文字化けしたエラーメッセージは、ソースファイルに\r\n
行末があることを示しています。不要な改行が邪魔をしているのです。
dos2unix
ソースファイルで使用する