[Linux Shell学习系列五]Shell编程基础

D11

1. Shell脚本的第一行"#!"

#!(Shebang)出现在Shell脚本文件第一行的前两个字符,用于指示一个解释程序。

语法:#! INTERPRETER [OPTION]...

注意:INTERPRETER必须是一个程序的绝对路径。

在Linux系统中,但内容以#!开头的脚本作为一个程序运行时,程序加载器会将脚本第一行的#!之后的内容解析为一个解释程序,然后用这个指定的解释程序替代其运行,并将脚本的路径作为第一个参数传递给解释程序。

如:一个脚本的路径为/path/to/script,其内容的开头:

#!/bin/bash

则/bin/bash作为解释程序,运行/path/to/script

几乎所有脚本都是以“#!/bin/bash”开头的,如果不指定,默认用“/bin/sh”作为解释程序,但还是推荐将Bash脚本的第一行设为“#!/bin/bash”。

 

2. Shell中的注释

Shell脚本中"#"是注释标识符。脚本某行以“#”开头或包含“#”(除了$#)则这一行的#之后的内容都被解释程序忽略,称为注释。

#!/bin/bash
#test cron
#2020-05-18

echo $(date) >> time.log

还可以使用Bash的HERE DOCUMENT特性添加多行的注释内容。如:

#!/bin/bash
<<COMMENT
        test cron
     2020-05-18 COMMENT
echo $(date) >> time.log

 

3. 如何设置脚本的权限和执行脚本

1)执行权限

Shell脚本文件不具有执行权限,执行时报错:

$ ./echotime.sh
-bash: ./echotime.sh: Permission denied

添加权限采用chmod命令

$ chmod u+x echotime.sh #为所有者添加执行

$ chmod +x echotime.sh #给所有用户添加执行权限

2)执行路径

$ /home/user1/20200511study/echotime.sh #使用绝对路径运行

$ cd /home/user1/20200511study/ 
$ ./echotime.sh #使用相对路径运行

将Shell脚本所在目录的路径添加到PATH环境变量,则可以在任何路径下直接运行该目录下的Shell脚本:

$ export PATH=$PATH:/home/user1/20200511study/
$ cd /tmp
$ echotime.sh

 

[Linux Shell学习系列五]Shell编程基础

上一篇:Vim安装


下一篇:Ubuntu 下 wget 下载工具