2017-08-14 8 views
0

でUNIXシェルに入力します。私はこれを達成したい具体的な作業ディレクトリ

[zsh]$ pwd 
/home/user 
*[zsh]$ bash # enter to a bash shell at the same time as `cd ~/Desktop`. 
[bash]$ pwd 
/home/user/Desktop 
[bash]$ exit 
[zsh]$ pwd 
**/home/user 

私はいくつかのディレクトリを変更すると同時に、UNIXのシェルに入力するにはどのような方法があるかどうかを知りたいです特定のパス。任意の新しいシェルから存在した後、それとして、最新の場所に戻ることが期待されます

  • 、ライン*は、シェルを入力し、ディレクトリを変更するための1行のコマンドであると考えられる

    1. :それはすることが重要ですシェルに入る前です。**を参照してください。
  • +0

    2。シェルのデフォルトの動作です。 –

    +0

    私はそれを知っていました、以下の答えを読んでください、あなたは私がこれを言及した理由を知っているでしょう。 – fronthem

    答えて

    2

    も、一時的な現在の作業ディレクトリを変更するために有用である:

    % (cd ~/Desktop && bash) 
    
    0

    簡単な答えの1つは、適切なディレクトリに切り替えるbash構成ファイルを使用することです。単一の行を含むファイル〜/ .my_bashrcを作成することにより:

    cd ~/Desktop 
    

    あなたは、単に入力することができます。

    bash --rcfile ~/.my_bashrc 
    

    を端末内のデスクトップディレクトリに直接新しいシェルを開きます。

    はもちろん、あなたは、任意の正規のbashrcファイルに同じように、〜/ .my_bashrc(別名、など)で他のコマンドを追加することができます。

    +0

    質問を更新しました。もう一度お読みください。 – fronthem

    0

    は単純にこれを行います。

    cd /home/user/Desktop && bash 
    

    これは/home/user/Desktopにあなたの現在のディレクトリを変更しようとすると、それは変更を成功した場合、他のbashへのシェルでエラーが発生します。あなたがpushdpopdのコマンドを使用することができます

    +0

    私は質問を更新しました。もう一度お読みください。 – fronthem

    +0

    2番目の手順は、終了時にデフォルトで行われます。 –

    +0

    それはできません。 [zsh]の場合、私は '〜'の代わりに '/ usr/local'にいますか?[bash]を終了しても、あなたの解決策は私を '/ usr/local'に戻さないことは明らかです。 – fronthem

    0

    :この場合には

    pushd ~/Desktop && bash ; popd 
    

    pushdは「覚えていて、CD」のようなものです - それは、現在のディレクトリ作成、ディレクトリスタックの一番上に新しいディレクトリを追加します。次はbashを開始し、後、あなたはpopdはのpushdで思い出したディレクトリに戻ります、bashのを終了します。

    EDIT:&&から;に変更されました。コメントで指摘されているようにエラー処理が改善されました。サブシェルを使用して

    +0

    'bash'が正常に終了した場合のみ。 –

    関連する問題