使用shell脚本浏览文件夹

时间:2015-07-12 17:13:46

标签: shell

我是shell脚本新手。我已将脚本文件保存为主目录中的script_hdl。从我的主目录,我想按以下顺序使用脚本导航:cd ../../ site / edu / ess / project / user / rark444

然后从终端中的这个新位置打开一个新标签页。

我用这个作为我的剧本:

#!/bin/bash
alias script_hdl="cd ../../site/edu/ess/project/user/rark444"

我像这样运行脚本

  

./ script_hdl

但是我没有在终端看到任何回复。我觉得我错过了什么,但我不知道它是什么。在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

看起来您正在尝试设置别名。您可以通过编辑主目录中的 .bash_profile 文件来执行此操作(如果不存在,您可以创建一个,然后运行" source .bash_profile" 编辑后)并输入类似 alias script_hdl =' cd ../../ site / edu / ess / project / user / rark444' 的条目然后从您的终端运行" script_hdl"

有关别名的详情,请点击保罗提及的链接。

答案 1 :(得分:1)

您可以通过两种方式更改目录。

脚本

第一个是编写脚本,以便在cd之后运行其他命令。它在没有alias命令的情况下工作:假设您将其删除。

cd命令适用于正在运行的进程。执行脚本时,会发生以下情况:

  1. 你的shell产生(分叉)执行代码的新shell进程。主要过程等待孩子完成;
  2. 这个新的子进程实际上确实使用您的cd命令更改了自己的工作目录,然后退出(已结束)
  3. 原始shell进程停止等待并再次打印提示。但是这个过程有更改目录(只有子进程确实)
  4. 要执行您想要的操作,(删除alias命令,然后)调用您的脚本,如下所示:

    source script_hdl
    

    或使用以下快捷方式:

    . script_hdl
    

    意味着您希望指令在同一个shell进程中运行。

    别名

    更改目录的第二种方法是使用别名。但是您不应该在随机脚本文件中编写别名定义,而是将其添加到~/.bashrc中(每次打开shell时都会运行此文件)。 所以:

    alias script_hdl="cd ../../site/edu/ess/project/user/rark444"
    

    重新加载~/.bashrc

    . ~/.bashrc
    

    然后不要尝试从文件执行,只需启动别名,就好像它是一个正常的命令:

    script_hdl
    

答案 2 :(得分:0)

确保拼写正确,因为unix区分大小写并且您具有权限。首先在命令行上尝试它以确保它工作,如果有错误它将出现在命令行上,因为有时脚本会隐藏错误和消息。如果有效,则将文本复制到脚本文件中,不要使用别名。

以下是别名的正确用法

https://en.wikipedia.org/wiki/Alias_(command)