私の.bash_profile
ファイルで2つのコマンドが順番に実行されるコマンドエイリアスを設定したいと思います。最初のコマンドはコマンドラインから引数を取得し、2番目のコマンドは実際にはスクリプトです(~/bin
実行権限がある場所にあります)。
私のプロファイルファイルには次のものがあります。
alias pd='function pd2() { pushd "$@"; set_title_tab; }'
次のようにシェルで実行してみました。
$ pd ~/Documents/
エラーが発生します。
-bash: 予期しない表示 '~/Documents/' の近くに構文エラーがあります。
set_title_tab
はWilliam Scottが書いたシェルスクリプト
これを達成するより良い方法はありますか?
答え1
ニックネーム入力パラメーターはサポートされておらず、関数を別名でラップする必要はありません。ただ関数を使用してください:
pd() {
pushd "$@"
set_title_tab
}
pd ~/Documents
答え2
なぜできないのですか?
pd () { pushd "$@"; set_title_tab; }
今持っているのはエイリアス内の関数定義です。これは…珍しいです。上記のように関数を定義すると、pd
他のコマンドと同じように使用できます。