2012年6月28日木曜日

シェルスクリプト内でaliasを使う

例えば、.bashrc に
alias rm='rm -i'
と記述してあっても、
シェルスクリプト(test.bash)内で
#!/bin/bash
rm abc.txt
として
bash test.bash
としても、問答無用でファイルが削除されてしまる。

test.bash を呼び出したときには .bashrc が呼ばれないのが原因らしい。

そこで、.bashrc を読んでaliasを有効にするために
#!/bin/bash
shopt -s expand_aliases
source ~/.bashrc
rm abc.txt
とすると、ちゃんとabc.txtを削除するときに確認メッセージが出る。

1 件のコメント:

  1. shopt コマンドを初めて知りました
    とても参考になりました
    神記事

    返信削除