我想完成这个:
[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 shell。重要的是:
*
应该是用于输入shell和更改目录的单行命令,**
行。答案 0 :(得分:2)
使用子shell对于临时更改当前工作目录也很有用:
% (cd ~/Desktop && bash)
答案 1 :(得分:0)
一个直截了当的答案是使用bash配置文件切换到正确的目录。通过创建一个包含单行的文件〜/ .my_bashrc:
cd ~/Desktop
然后你可以输入:
bash --rcfile ~/.my_bashrc
在终端中直接在桌面目录中打开一个新的shell。
当然你可以在〜/ .my_bashrc(别名等)中添加其他命令,就像在任何常规的bashrc文件中一样。
答案 2 :(得分:0)
只需这样做。
cd /home/user/Desktop && bash
这将尝试将您当前的目录更改为/home/user/Desktop
,如果成功将shell更改为bash
,则会抛出错误。
答案 3 :(得分:0)
您可以使用pushd
和popd
命令:
pushd ~/Desktop && bash ; popd
在这种情况下, pushd
就像"记得和cd" - 它将新目录添加到目录堆栈的顶部,使其成为当前目录。接下来你开始bash
和 之后你退出bash,popd
会带你回到pushd记住的目录。
编辑:将&&
更改为;
,以便更好地处理错误,如评论中所述。
答案 4 :(得分:0)
我认为回答@hchbaw有点棘手。我刚从run bash command in new shell and stay in new shell after this command executes找到了更有效的解决方案。在我的情况下,我可以使用:
bash --rcfile <(echo "cd ~/Desktop")