Linux/Ubuntu 为 sh 文件创建可执行命令

标签 linux ubuntu

我想为 Ubuntu 创建可执行命令。

我有/dir/bin/start.sh

我可以这样执行

./dir/bin/start.sh

但我想知道如何将它放入 Ubuntu 配置之类的,所以它会 可以从 shell 中调用它

start

最佳答案

您可以通过以下任一方式执行此操作:

  • 将命令的目录添加到$PATH 变量中,因此:

    export PATH=$PATH:/dir/bin
    

    要做到这一点,您必须将此行添加到 ~/.profile 文件中:

     echo 'export PATH=$PATH:/dir/bin' >> ~/.profile
    
  • 在添加到路径的目录中创建快捷方式(例如使用 ln -s '/dir/bin/start.sh' start);

    cd <pathdirectory>
    ln -s '/dir/bin/start.sh' start
    
  • 创建一个别名,以便 shell 简单地替换命令:

    echo 'alias start=./dir/bin/start.sh' >> ~/.profile
    

这是如何/为什么工作的

如果您在 shell 中键入命令,它会首先查找别名,然后替换别名。因此,如果您为 start 定义了别名,它将简单地替换为 ./dir/bin/start.sh;就好像你自己写的一样。

接下来 shell 将尝试找到命令的解释。如果命令是文件(例如通过使用别名),则执行该文件。否则,系统回退到 $PATHs。

$PATHs 是一系列路径,系统在其中搜索具有该名称的文件。它按该顺序搜索路径,并在所有文件中搜索同名文件。如果存在这样的文件,它会运行该文件。

因此你可以做一些事情:

  • 将这样的程序放在目录中;但这并不是一个很好的选择,因为不同的项目随后会组合在一起;
  • 使用快捷方式(ln 解决方案),在这种情况下,您只需在路径文件夹中添加一个“代表”;
  • 通过执行 PATH=$PATH:/dir/bin 扩展路径数量,以便它也能搜索您的项目。

关于Linux/Ubuntu 为 sh 文件创建可执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30109410/

相关文章:

c - 在Linux中使用fallocate()快速预分配大文件

javascript - Node.js 100% CPU - gettimeofday 调用

Linux - 使用 SSH 的关闭脚本

python - 无法使用 Windows Ubuntu 应用程序连接到 Docker

为 Ubuntu 13.04 Bug 自动调整 Emacs 中 R 绘图的大小

c++ - 信号处理程序和多线程

c - 使本地 HTTP 服务器无法从外部访问

unix - 在 unix 中退出 vi 编辑器

在 ubuntu 服务器上上传 PHP 文件

python - Ubuntu 16.04,Python 2.7 - 导入错误 : No module named enum