Linux小课堂开课了(6)

学习bash shell基础知识
Bash shell 脚本的第一行是以#!开头,执行bash shell脚本前,需要修改其文件权限和所有权,使其变为可执行文件,使用chmod和chown相应修改文件的权限和所有权。
使用echo进行输出。使用转义字符\(取消单个字符的特殊含义),单引号’’(保留字符的字面值),双引号””(不保留美元符号$,,反引号’’,反斜杠\的字面值)
[root@localhost ~]# echo # hello

[root@localhost ~]# echo # hello

hello

[root@localhost ~]# echo 'hello'
Hello
[root@localhost ~]# echo "'hello'"
'hello'
使用变量,变量名称通常是大写字母,它们可以由数字、字母(大写和小写)和下划线字符_组成,但是不能以数字开头。等号=为变量分配值,不能使用空格将其与变量名称或值分隔开。
变量中存储的两种常见数据类型是整数值和字符串值,为变量分配字符串值时,建议用引号将其括起,避免bash将空格字符解释为单词分隔符。
扩展变量,在变量名称前面加上美元符号$,来重新调用变量的值。
命令替换,将命令的调用替换为执行命令后的输出,可以将命令括在反引号的中的旧形式来调用命令替换,如’<COMMAND>’,但是,首选方法是使用最新的$()语法,$(<COMMAND>)。
算术扩展,执行简单的整数算术运算,用$[]括起时,算术表达式将由bash进行求值,然后替换为求值结果,使用语法$[<EXPRESSION>].
常用的算术表达式的部分运算符及其含义
<VARIABLE>++ 变量后置递增
<VARIABLE>- - 变量后置递减
++<VARIABLE> 变量前置递增
--<VARIABLE> 变量前置递减

  • 一元减法
  • 一元加法
    ** 求幂
    • 加法 - 减法 * 乘法 / 除法 % 求余
      使用for循环,循环按顺序逐一处理<LIST>中提供的项目,并且在处理列表中的最后一个项目之后退出。
      for <VARIABLE> in <LIST>; do
      <COMMAND>
      ...
      <COMMAND> referencing <VARIABLE>
      done
      使用条件句和控制结构优化bash shell 脚本
      二进制比较运算符用于整数比较
      -eq 等于 [“$a” –eq “$b”]
      -ne 不等于 [“$a” –ne “$b”]
      -gt 大于 [“$a” –gt “$b”]
      -ge 大于等于 [“$a” –ge “$b”]
      -lt 小于 [“$a” –lt “$b”]
      -le 小于等于 [“$a” –le “$b”]
      二进制比较运算符用于字符串比较
      = 等于 [“$a” = “$b”]
      == 等于 [“$a” == “$b”]
      != 不等于 [“$a” != “$b”]

使用条件语句if/then
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
fi
使用if/then/else语句
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
else
<STATEMENT>
...
<STATEMENT>
fi
使用if/then/elif/then/else语句
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
elif <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
else
<STATEMENT>
...
<STATEMENT>
fi
使用case语句
case <VALUE> in
<PATTERN1>
<STATEMENT>
...
<STATEMENT>
;;
<PATTERN2>
<STATEMENT>
...
<STATEMENT>
;;
esac
实践一下
创建一个添加用户的脚本
[root@localhost ~]# vim user.sh
#!/bin/bash
if [ $# -eq 0 ]; then
echo '请提供参数'
exit 1
fi
if [ ! -f $1 ]; then
echo '不存在'
exit 1
fi
while read line
do
useradd -s /bin/fales $line
done < $1
Linux小课堂开课了(6)
[root@localhost ~]# chmod +x user.sh
创建一个用户名文件userlist
a
b
c
d
e
d
f
[root@localhost ~]# sh user.sh
请提供参数
[root@localhost ~]# sh user.sh aaa
不存在
[root@localhost ~]# sh user.sh userlist
useradd: user 'd' already exists
[root@localhost ~]# cat /etc/passwd
Linux小课堂开课了(6)

未完,待续~

猜你喜欢

转载自blog.51cto.com/11293100/2408437