.bash_profileで2つのコマンドを結合します。

.bash_profileで2つのコマンドを結合します。

私の.bash_profileファイルで2つのコマンドが順番に実行されるコマンドエイリアスを設定したいと思います。最初のコマンドはコマンドラインから引数を取得し、2番目のコマンドは実際にはスクリプトです(~/bin実行権限がある場所にあります)。

私のプロファイルファイルには次のものがあります。

alias pd='function pd2() { pushd "$@"; set_title_tab; }'

次のようにシェルで実行してみました。

$ pd ~/Documents/

エラーが発生します。

-bash: 予期しない表示 '~/Documents/' の近くに構文エラーがあります。

set_title_tabWilliam Scottが書いたシェルスクリプト

これを達成するより良い方法はありますか?

答え1

ニックネーム入力パラメーターはサポートされておらず、関数を別名でラップする必要はありません。ただ関数を使用してください:

pd() {
    pushd "$@"
    set_title_tab
}

pd ~/Documents

答え2

なぜできないのですか?

pd () { pushd "$@"; set_title_tab; }

今持っているのはエイリアス内の関数定義です。これは…珍しいです。上記のように関数を定義すると、pd他のコマンドと同じように使用できます。

関連情報