- ベストアンサー
cygwinシェルスクリプト内でのエイリアス
cygwinのterminal上で alias abc=ls abc とやるとlsを実行したことになるのですが、 内容が #!/bin/bash alias abc=ls abc のa.shというシェルを作り実行すると、 ./a.sh: line 3: abc: コマンドが見つかりません というエラーが出て実行してくれません。 解決策が分かる方よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
bashのスクリプトのことなら、まずは、bashのマニュアルを読むことです。 man bash で読めます。 ネット検索すれば、日本語訳も見つかります。 http://linuxjm.sourceforge.jp/html/GNU_bash/man1/bash.1.html マニュアルのAliasについての説明を読むと > シェルが対話的でないときには、 shopt コマンドによって expand_aliases オプションが設定されていない場合に限り、 エイリアスの展開は行われません シェルスクリプトは「対話的ではありません」 スクリプト中にエイリアス使うことは、あまりお勧めできません。思わぬものが展開されて、期待通りに動作しないことがあるからです。(例えば、 alias ls="rm -rf" などとなってたりしたら....)
お礼
ありがとうございました。意味がよくわかりました。 シェル内でのエイリアスは成功しましたが、うまく動かないことも多いということなので使わないことにします。