bash スクリプトから呼び出されたときに Drush コマンドが見つからない

bash スクリプトから呼び出されたときに Drush コマンドが見つからない

関連するシステムの背景:

  • 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ソースファイルで使用する

関連情報