shell脚本基本知识
shell脚本既是一种命令语言,又是一种程序设计语言。简单的说它可以以一种有逻辑的形式来执行一些终端的指令或其他操作,比如用循环或判断等方式来对文件进行创建或修改删除等操作。(执行shell脚本必须要有可执行权限,用chmod +x 脚本名 可以给脚本加权限)
一:shell的格式
第一行"#! /bin/bash"(必须要写)
在 Linux 中,以"#“开头的一般都是注释,不过这句话是例外的。这句话的作用是标称我以下写的脚本使用的是 Bash 语法,只要写的是基于 Bash 的 Shell 脚本都应该这样开头。
不过,有一些比较喜欢钻研的人也会有疑问,他们在写 Shell 脚本时,不加”#!/bin/bash"这句话,Shell 脚本也可以正确执行。那是因为我们是在默认 Shell 就是 Bash 的 Linux 中编写的脚本,而且脚本是纯 Bash 脚本才能够正确执行。如果把脚本放在默认环境不是 Bash 的环境中运行,又或者编写脚本的不是纯 Bash 语言,而是嵌入了其他语言(如 Tcl 语言),那么这个脚本就不能 正确执行了。所以,大家记住我们的 Shell 脚本都必以"#!/bin/bash"开头。
第二行:注释
在 Shell 脚本中,除"#!/bin/bash"这行外,其他行只要以"#"开头的都是注释。第二行就是我们这个脚本的注释,建议大家在写程序时加入清晰而详尽的注释,这些都是建立良好编程规范时应该注意的问题。
第三行:程序的主体
既然 echo 命令可以直接打印相应的语句,那么将这句话放入 Shell 脚本中也是可以正确执行的,因为 Linux 的命令是可以直接在脚本中执行的。
二:shell的变量
①.定义变量:
定义shell变量时有以下几种方式:
- name=you_name
- name=“you_name”
- name=‘you_name’
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样
三种命名的区别如下图所示:
1:当使用双引号定义时:
#! /bin/bash
name=you_name
printf="print:$name"
echo $printf
输出结果:
print:you_name
2:当无引号时:
#! /bin/bash
name=you_name
printf=print:$name
echo $printf
输出结果:
print:you_name
3:当使用单引号时:
#! /bin/bash
name=you_name
printf='print:$name'
echo $printf
输出结果:
print:$name
②.使用变量:
使用变量有两种方式,一种是加上美元符号($)直接使用
name=you_name
echo $name
还有一种方式可以用花括号来对变量进行限制
name=you_name
echo ${name}
这么做的好处就是可以对变量的范围做一个限制,这样方便在变量后加入新的元素,比如
name=you_name
echo ${name}is zhang san