我是shell脚本的新手。我已将脚本文件保存为script_hdl,并保存在主目录中。在我的主目录中,我想按以下顺序使用脚本进行导航:cd ../../site/edu/ess/project/user/rark444
然后从终端中的这个新位置打开一个新选项卡。
我用这个作为我的脚本:
#!/bin/bash
alias script_hdl="cd ../../site/edu/ess/project/user/rark444"
我这样运行脚本
./script_hdl
但我没看到终端有任何回应。我觉得我错过了什么,但我不知道是什么。先谢谢你的帮助。
4条答案
按热度按时间hlswsv351#
你有两种方法可以在这里更改目录。
脚本
第一个是写一个脚本,这样你就可以在
cd
之后运行其他命令。它可以在没有alias
命令的情况下工作:假设你把它取出来cd
命令适用于正在运行的进程。当您执行脚本时,会发生以下情况:1.你的shell会产生一个新的shell进程来执行你的代码。主进程等待其子进程完成;
1.这个新的子进程实际上用你的
cd
命令改变了它自己的工作目录,然后退出(结束)1.原始shell进程停止等待并再次打印提示符。但是这个进程没有改变目录(只有子进程改变了)
要执行您想要的操作,请(删除
alias
命令,然后)按如下方式调用脚本:或使用以下快捷方式:
这意味着您希望指令在同一个shell进程中运行。
安装
改变目录的第二种方法是使用别名。但是你不应该把别名定义写在一个随机的脚本文件中,而应该把它添加到你的
~/.bashrc
中(这个文件在你每次打开一个shell时都会运行)。所以:重新加载
~/.bashrc
:然后不要试图从文件执行,只要启动你的别名,就像它是一个普通的命令:
kh212irz2#
看起来你是想建立一个别名。你可以通过在你的主目录中编辑你的**.bash_profile文件来做到这一点(如果它不在那里,你可以创建一个,然后在编辑它之后运行“source .bash_profile”),并创建一个类似alias script_hdl ='cd../../site/edu/ess/project/user/rark 444'的条目,然后从你的终端运行“script_hdl”。
有关alias**的更多信息,您可以访问Paul提到的链接。
j7dteeu83#
确保拼写正确,因为unix区分大小写,并且您有权限。首先在命令行上尝试它,以确保它的工作,如果有一个错误,它会出现在命令行上,因为有时脚本隐藏错误和消息。如果它工作,然后复制文本到脚本文件,不要使用别名。
这里是别名的正确用法
https://en.wikipedia.org/wiki/Alias_(command)
ffvjumwh4#
你可以使用cd++来更快的浏览文件夹。可以找到here