シェルスクリプトから Pushd を呼び出す

シェルスクリプトから Pushd を呼び出す

"push"を呼び出してから別のコマンドを呼び出す簡単なスクリプトがあります。しかし、スクリプトの "pushd"コマンドはスクリプトの範囲を超えていないようです。

シェル端末で実行する方法はありますか?

#!/bin/sh

pushd $1
time

私が本当に達成したいのは、電話をかけてコマンドを使用するpushdことです。other-command

ベストアンサー1

/bin/shこの場合、シェルスクリプトは通常、シェルプログラムの別々のインスタンスで実行されます。あなたのpushdコマンドはサブシェルの作業ディレクトリにのみ影響します。そうしないと、シェルで実行されるすべてのプログラムがシェルの作業ディレクトリを妨げる可能性があります。

代わりに、現在のシェルでスクリプトを実行するには、次の手順を実行します。

$ . my-command somedir

またはさらに詳しく説明すると、次のようになります。

$ source my-command somedir

プログラムが他のプログラムのように動作するようにするには、エイリアスを使用できます。

$ alias mycmd='source my-command'
$ mycmd /bin
$ pwd
/bin

おすすめ記事