美文网首页Shell
第一个shell脚本

第一个shell脚本

作者: Fengya | 来源:发表于2016-05-27 16:30 被阅读55次

    第一个shell脚本

    #!/bin/bash
    echo "Hello world!"
    

    1、关于#!

    在脚本开头的 sha-bang (#!) 是告诉系统这个文件是由特定命令解释器解释的一组命令。 那个 #! 实际上是两个字节的 魔数, 魔数是指定文件类型的特殊记号,在此是表示这是一个可执行的shell脚本(键入 man magic可了解更多的信息)。紧跟着#!的是一个路径名.这个路径名是解释这个脚本内命令的命令解释器程序的路径:可能是一个shell,也可能是一个编程语言或者是一个软件包程序。这个命令解释器能执行脚本内的命令语句。它从脚本开头(即从#!所在行的下一行)起执行,但是忽略注释行。

    #!/bin/sh
    #!/bin/bash
    #!/usr/bin/perl
    #!/usr/bin/tcl
    #!/bin/sed -f
    #!/usr/awk -f
    

    上面每一个脚本头行都是不同的命令解释器,如果第一行是/bin/sh, 那就是默认的Shell(Linux系统中bash是默认的shell),否则的话就是其他的解释器.如果使用#!/bin/sh(因为大多不同的商业UNIX都使用Bourne shell为默认shell)可以使脚本能够移植到非Linux的机器上,虽然这样做你将不能使用Bash许多特有的属性。但这样做的脚本遵循 POSIX sh标准.

    值得注意的是,在"#!"后面提供的路径必须是正确的,否则你运行脚本只会收到通常像"Command not found"那样的错误信息。

    如果脚本程序只是由一组普通的系统命令而没有使用Shell内置命令的话#!将被忽略。再次提醒使用#!/bin/sh将调用默认的命令解释器,这在Linux系统上是/bin/bash.

    2、关于echo

    echo命令是一个系统的内建命令(builtin)。用于I/O操作。在这里我们利用echo命令来输出一行字符串。

    3、关于运行方式

    接着尝试运行这个脚本:

    Hello world!

    可以使用的方法有(假设文件的名字为hello.sh):

    1.bash hello.sh

    直接使用bash脚本运行hello.sh 这个脚本

    2.chmod +x hello.sh

    ./hello.sh

    给这个脚本添加运行权限之后直接调用。运行时脚本会根据#!后面的内容确定运行脚本的程序。即使用/bin/bash 。

    与此类似的,我们还可以将脚本放入系统环境变量的search path里面。比如在mac下的/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin之类的目录下。这样就能够直接用hello.sh这种方式来运行这个脚本了。

    相关文章

      网友评论

        本文标题:第一个shell脚本

        本文链接:https://www.haomeiwen.com/subject/uzcfdttx.html