如何在Shell中使用命令运行我自己的程序?

时间:2009-09-19 15:05:23

标签: shell command

我刚刚了解到我可以使用chmod make myscript.sh可执行文件并将其作为$ ./myscript.sh运行但是如何附加自定义命令,例如$ connectme [options]

2 个答案:

答案 0 :(得分:3)

你需要做两件事:

  1. 提供您要使用的名称。要么重命名,要么建立链接(硬或符号)。确保正确命名的对象具有正确的权限。
  2. 确保它在你的路上。但是将“.”放在PATH中是一个坏主意(tm),因此请将其复制到$HOME/bin,并将 放在您的路径中。
  3. 完全不同的方法。大多数shell支持别名。您可以定义一个来运行脚本。


    注意:环境变量PATH告诉shell在哪里查找要运行的程序(除非您指定完全限定的路径,例如/home/jdoe/scripts/myscript.sh./myscript.sh ),它由要检查的“:”分隔的目录列表组成。您可以通过以下方式查看:

    $ printenv PATH
    

    导致我

    /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/X11R6/bin
    

    这是二进制文件的常用目录。您可以添加一个新的路径元素(在/ bin/sh和衍生物中):

    $ export PATH=$PATH:$HOME/bin
    
    <{1>}中的

    和衍生品使用

    csh

    其中任何一个导致shell也会在$ setenv PATH $PATH:$HOME/bin 中搜索要运行的内容。然后将脚本移动到该目录中(如果需要,可以提供新名称)。检查您是否对脚本执行了权限,只需像任何其他命令一样输入其名称。

    Fianlly,使用“~/bin”扩展名表示shell脚本仅供人类使用。 Unix并不关心你如何命名你的脚本:它是脚本的第一行所谓的“shebang”(“.sh”),操作系统用它来查找解释器。

答案 1 :(得分:1)

您需要了解BASH PROGRAMMING中的参数。 Here是一个很好的教程。检查第4节。

基本上,你需要使用特殊变量$ 1,$ 2,$ 3来分别引用第一,第二和第三个命令行参数。

示例:

$ ./mycript.sh A-Rod

使用myscript.sh:

#!/bin/bash

echo "Hello $1"

将打印:

Hello A-Rod