Linux小课堂开课了(6)

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

[root@localhost ~]# echo # hellovim

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”]bash

使用条件语句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)ide

未完,待续~学习

相关文章
相关标签/搜索