Bash脚本获取用户并更改目录

时间:2011-12-31 19:22:40

标签: bash dir

如何将这两个示例与pushd和whoami结合使用以更改目录?

我知道我可以像这样更改目录:

#!/bin/bash
pushd /home/mike/Pictures > /dev/null
# do something in the new dir
ls
popd > /dev/null

我知道我可以获得这样的用户名:

#!/bin/bash
theuser=`whoami`
echo $theuser        

6 个答案:

答案 0 :(得分:3)

waaay 过度思考......

cd ~/Pictures

修改

实际上,没有。你真正想要的是:

cd "$(xdg-user-dir PICTURES)"

答案 1 :(得分:1)

使用cd更改目录更容易:

#!/bin/bash    
cd ~/Pictures

答案 2 :(得分:0)

这些反引号可用于将它们包含的命令的输出插入另一个:

pushd /home/`whoami`/Pictures

答案 3 :(得分:0)

比使用pushdpopd容易得多,在子shell中运行命令:

(
cd /home/$(whoami)/Pictures &&
ls
)

子shell更改目录,而不会影响主进程 - 完全按照您的意愿,但更可靠。

答案 4 :(得分:0)

Bash已经有了$ USER变量,无需调用外部二进制文件

pushd /home/$USER/Pictures > /dev/null

答案 5 :(得分:0)

其他解决方案:

pushd "$HOME/Pictures"

毕竟,没有什么要求主目录带有用户名!