第一个shell脚本

第一个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这种方式来运行这个脚本了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,946评论 0 5
  • 打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表s...
    孤月环舟阅读 1,709评论 0 0
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 5,457评论 0 0
  • 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用p...
    Viking_Den阅读 3,459评论 0 2
  • 创建脚本文件$ vim test.sh新建一个名为test扩展名为sh(sh代表shell),扩展名不影响脚本执行...
    WorldPeace_hp阅读 2,454评论 1 1