シェルスクリプト内でaliasを設定する要因
作成したシェルスクリプトを様々な環境で使用する場合に、aliasをシェルスクリプト内で設定したかった。
bash_profileなどに入れると他の環境で叩いた時に解決出来ないため。
以下、サンプルスクリプト。
#!/bin/bash
shopt -s expand_aliases
# GNUとBSDのsedでは-iのサフィックス仕様が異なる
if sed --version 2>/dev/null | grep -q GNU; then
alias sedi='sed -i '
else
alias sedi='sed -i "" '
fi
sedi -e “s/aaa/bbb/g” test.txt
通常aliasはインタラクティブシェルでしか機能しません。
bashの場合はexpand_aliasesをセットすればaliasが展開されます。