• ベストアンサー

cygwinシェルスクリプト内でのエイリアス

cygwinのterminal上で alias abc=ls abc とやるとlsを実行したことになるのですが、 内容が #!/bin/bash alias abc=ls abc のa.shというシェルを作り実行すると、 ./a.sh: line 3: abc: コマンドが見つかりません というエラーが出て実行してくれません。 解決策が分かる方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

bashのスクリプトのことなら、まずは、bashのマニュアルを読むことです。 man bash で読めます。 ネット検索すれば、日本語訳も見つかります。 http://linuxjm.sourceforge.jp/html/GNU_bash/man1/bash.1.html マニュアルのAliasについての説明を読むと > シェルが対話的でないときには、 shopt コマンドによって expand_aliases オプションが設定されていない場合に限り、 エイリアスの展開は行われません シェルスクリプトは「対話的ではありません」 スクリプト中にエイリアス使うことは、あまりお勧めできません。思わぬものが展開されて、期待通りに動作しないことがあるからです。(例えば、 alias ls="rm -rf" などとなってたりしたら....)

H9090
質問者

お礼

ありがとうございました。意味がよくわかりました。 シェル内でのエイリアスは成功しましたが、うまく動かないことも多いということなので使わないことにします。

関連するQ&A

専門家に質問してみよう