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