- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:linuxでaliasをbashrcに記載してsh)
Linuxで.bashrcにaliasを記述してshスクリプトで実行する方法
このQ&Aのポイント
- Linuxの.bashrcファイルにaliasを記述してshスクリプトで実行する方法について教えてください。実行すると「command not found」となってしまいます。
- ログイン後にコマンドを実行すると正常に動作するので、shの作り方が悪いのかもしれません。
- 使用しているOSはLinux Red Hat 5.4です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$HOME/.bashrc(.profile)はインタラクティブシェルでしか読み込まれません。 また通常aliasはインタラクティブシェルでしか機能しません。 そういう用途にはfunctionを使います。 なお、bashの場合はexpand_aliasesをセットすればインタラクティブシェル じゃなくてもaliasが展開されます。以下、例です。 a.sh: alias ali='echo "alias!"' fun() { echo "function!"; } b.sh: #!/bin/bash -x # ↓コメントをオンオフして試してみてください #shopt -s expand_aliases . ./a.sh ali fun
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.1
bashのマニュアルをよく読んでください。 .profile等のファイルが読みこまれるかどうかの条件がいろいろ書いてあるはずです。 すなおにtest01.sh内にalias書くか、alias使わずにちゃんと書くか、です。