只适合简单学习过shell脚本的人,不然容易被我粗略的笔记误导
#! /bin/bash:开头说明用的什么shell
变量名=值:变量赋值不能有空格
$变量名:变量的使用
read -p “xxxxx” a b c:read -promote===提示用户xxxxx,多次获取用户输入并赋值给变量a,b,c
-s:用户输入内容不显示
$1 $2
3
:
三
个
参
数
,
用
户
执
行
脚
本
时
需
要
入
参
.
/
x
x
.
s
h
x
x
x
x
x
x
:
执
行
脚
本
x
x
.
s
h
,
且
入
三
个
参
数
a
r
g
s
=
(
x
x
x
)
:
为
数
组
a
r
g
s
赋
值
4
个
值
a
r
g
s
[
x
]
=
x
:
为
变
量
a
r
g
s
[
x
]
赋
值
a
r
g
s
=
(
"
3:三个参数,用户执行脚本时需要入参 ./xx.sh xx xx xx:执行脚本xx.sh,且入三个参数 args=(x x x):为数组args赋值4个值 args[x]=x:为变量args[x]赋值 args=("
3:三个参数,用户执行脚本时需要入参./xx.shxxxxxx:执行脚本xx.sh,且入三个参数args=(xxx):为数组args赋值4个值args[x]=x:为变量args[x]赋值args=("@"):用数组args存储变量,变量个数由后面调用的决定
${args[0]} ${args[1]}:调用变量
$@:调用数组中所有变量
${!args[@]}:输出索引
${#args[@]}:输出数组值的个数
$# :变量个数
if 条件 #判断语句
then
xxxxxxxx #执行语句
elif 条件
then
xxxxxxxx
else
xxxxxxxx
fi #if then语句体结束
条件语句中符号的使用:
整数比较符
-eq : (equal to)相等 例如: if [ “
a
"
−
e
q
"
a" -eq "
a"−eq"b” ]
-ne : (not equal to)相等 例如: if [ “
a
"
−
n
e
"
a" -ne "
a"−ne"b” ]
-gt : (greater than)大于 例如: if [ “
a
"
−
g
t
"
a" -gt "
a"−gt"b” ]
-ge : (greater than or equal to)大于或等于 例如: if [ “
a
"
−
g
e
"
a" -ge "
a"−ge"b” ]
-lt : (less than)小于 例如: if [ “
a
"
−
l
t
"
a" -lt "
a"−lt"b” ]
-le : (less than or equal to)小于或等于 例如: if [ “
a
"
−
l
e
"
a" -le "
a"−le"b” ]
< : 小于 例如: if (( “
a
"
<
"
a" < "
a"<"b” ))
<= : 小于等于 例如: if (( “
a
"
<
=
"
a" <= "
a"<="b” ))
: 大于 例如: if (( “ a " > " a" > " a">"b” ))
= : 大于等于 例如: if (( “ a " > = " a" >= " a">="b” ))
字符串比较
= : 等于 例如: if [ “
a
"
=
"
a" = "
a"="b” ]
== : 等于 例如: if [ “
a
"
=
=
"
a" == "
a"=="b” ]
!= : 不等于 例如: if [ “
a
"
!
=
"
a" != "
a"!="b” ]
< : 小于(ASCII字母顺序) 例如: if [[ “
a
"
<
"
a" < "
a"<"b” ]]
: 大于(ASCII字母顺序) 例如: if [[ “ a " > " a" > " a">"b” ]]
-z : 字符不为空
if [-e xxx]:-exist=判断xxx是否存在
if [-f xxx]:-file=判断xxx是否为常规文件
if [-d xxx]:-directory=判断xxx是否为文件夹
if [-s xxx]:-spacing=判断xxx是否空白
if [-w xxx]:-write===判断文件xxx是否有写权限
cat >> xx:在文件xx尾部编辑内容,不覆盖
if 条件1 && 条件2|if [条件1 -a 条件2]|if [[条件1 && 条件2]]:与的三种写法
if 条件1 || 条件2|if [条件1 -o 条件2]|if [[条件1 || 条件2]]:或的三种写法
$((变量1 +、-、*、/、% 变量2)):对变量1和变量2执行算法
$(expr 变量1 +、-、*、/、% 变量2):对变量1和变量2执行算法
sudo apt-get install bc:安装了bc之后才能执行浮点数计算
case 变量 in
xx) #条件
xxxxxxx;; #执行语句
xx)
xxxxxxx;;
?) #非空匹配
xxxxxxx;;
*) #除上面情况
xxxxxxx;;
esac #case语句体结束
[a-z] :所有小写字母
[A-Z] :所有大写字母
[0-9] :所有个位数
while 条件
do
xxxxxxxx #执行语句
n=$((n+1))|((n++)) #必须要有改变判断条件的语句,不然就死循环了
sleep(x) #停顿x秒
xfce4-terminal & #程序名,唤醒程序
done
while read p
do
echo $p
done <demo.sh
#循环读取文件内容 https://blog.csdn.net/u011541946/article/details/72667694
until [表达式不为真]
do
xxxxxxxx #执行语句
xxxxxxxx #改变变量,改变表达式的真假
done
for x in x xx xxx|for ((变量赋初值,条件,变量改变))|for x in 命令1 命令2 命令3
do
xxxxxxxxx #执行语句
done
#for循环 https://blog.csdn.net/u011541946/article/details/72669006