Linux 中默认的 shell 是 /bin/bash,属于 Linux 的内置脚本。
一、书写规范
① shell 脚本文件以 .sh 结尾。
② shell 脚本文件内部以 #!/bin/bash 开头,本质上这是一句注释,代表该 shell 脚本的解释器为 /bin/bash。
案例:创建一个名为 test1 的 shell 文件,要求能够自动创建一个名为 path.txt 的文件,并将 /root 的目录编入其中。
二、引入变量
① 命令赋给变量的时候需要用 ` 符号(Esc下面的键)括起来。
② 单引号没有办法实现转义,只相当于将单引号内部视为一个整体,实现转义需要用双引号。
③ 使用变量时,变量前面需要加 $,此时 $ 与后面的变量是一个整体,用引号也要把二者都括起来。
案例一:使用 shell 输出 hello,world!
或者使用双引号进行转义:
案例二:使用 shell 输出当前时间
此时 date +"%F %T" 作为一个命令,要赋给变量 str1 就需要加 `
(一)只读变量
格式:readonly 变量名
(二)接收变量
格式:read -p 提示信息 变量内容
(三)删除变量
格式:unset 变量名
三、运算符
(一)算数运算符
注意:
① 表达式要放在方括号内,首尾要有空格,如[$a == $b]错误,[ $a == $b ]正确。
② 除赋值运算符之外,其他运算符前后要加空格,否则系统不会将其识别为运算符,而是将其前后内容视为一个整体。
③ * 前加 \ ,否则会被视为通配符。
(二)关系运算符
注意:关系运算符只能用于数字之间的比较,或者字符串本身就是数字。
(三)逻辑运算符
假定变量a=10,变量b=20
(四)字符串运算符
假定字符串a="abc",字符串b="def"
(五)文件测试运算符
四、条件判断
语句1:
if
condition 1
then
command 1
fi
语句2:
if
condition 1
then
command 1
else
command 2
fi
语句3:
if
condition 1
then
command 1
elif
condition 2
then
command 2
else
command 3
fi
案例:输出 a、b 中较大的值
#!/bin/bash
a=10
b=20
if
[ $a ga $b ]
then
echo $a
else
echo $b
fi
五、接收变量实例
接收变量的方法除了使用 read -p 提示信息 变量内容 之外,还可以在终端直接书写在 .sh 文件后面。
题目:如果输入的内容是10,返回 “correct” ,如果输入其他数字,返回 "wrong"
方法1:
#!/bin/bash
read -p "please input the number" nu
if
[ $nu == 10 ]
then
echo "correct"
else
echo "wrong"
fi
方法2:
#!/bin/bash
if
[ $1 ==10 ]
then
echo "correct"
else
echo "wrong"
fi
此种方法中 $0 表示 .sh 文件本身,$1表示紧随其后的第一个输入变量,$2表示第二个,……以此类推。