我想在我的主目录(/ home / user)中创建(并执行)一个shell脚本。
尝试了以下内容:
printf "cd /mypath\n" > myShortcut.sh
chmod +x myShortcut.sh
sh myShortcut.sh
我哪里错了?
(我正在尝试设置导航到其他目录的快捷方式)
答案 0 :(得分:4)
这里到底出了什么问题?脚本执行后你还在/ home / user中?好吧那就是因为执行脚本会创建一个子shell,一旦脚本结束就会返回到父shell。因此,您的cd在当前shell中没有效果。
答案 1 :(得分:3)
如果要在当前shell 中执行脚本(而不是子shell ),请使用source
(或{{1} })命令:
.
然后应按预期更改目录。
此外,采购还允许您在当前shell中设置和更改环境变量 - 这本身就是一个非常常见的问题: - )
答案 2 :(得分:2)
由于其他答案所说的,这是行不通的。该脚本在子shell中运行。
对于这样的快捷方式,您可以设置别名,编辑主目录中的.bashrc文件并添加一行如
alias shortcut ='cd / mypath'
将“快捷方式”替换为您想要命名的内容,并将mypath替换为您想要的路径。 重新启动shell(关闭终端并重新打开或w / e),这应该可以正常工作。 然后,您可以在shell中的任何位置使用“快捷方式”。