如何将这两个示例与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
答案 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)
比使用pushd
和popd
容易得多,在子shell中运行命令:
(
cd /home/$(whoami)/Pictures &&
ls
)
子shell更改目录,而不会影响主进程 - 完全按照您的意愿,但更可靠。
答案 4 :(得分:0)
Bash已经有了$ USER变量,无需调用外部二进制文件
pushd /home/$USER/Pictures > /dev/null
答案 5 :(得分:0)
其他解决方案:
pushd "$HOME/Pictures"
毕竟,没有什么要求主目录带有用户名!