作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)
bash介绍
bash脚本是Linux系统上的一个可执行文件,相当于Windows系统中的.exe程序。
bash脚本基本命令
一、符号
1.# 注释
为了使脚本的可读性更强,在脚本中写入注释
2.;语句结束
bash中,换行即代码一行代码的结束,如果要在一行中写多句代码,使用;
3.;; 终止,作用与break一样
两个分号一起使用,表示跳出循环,终止,可以用在循环和case中
4…/ 脚本名 sh 脚本名 运行脚本
5.“” ‘’
使用双引号和单引号包裹的代码,里面的特殊符号只做一般字符处理,不会再有特殊含义
6./
文件路径分隔符,也可做除法
7.\
转义作用
8.``
先执行``中的,再执行其他的
# 先新建back的文件夹,然后复制test.sh文件到back文件夹
cp `mkdir back` test.sh back
9. > 重定向
# 把test.sh文件内容清空,/dev/null是空,里面啥也没有
cat /dev/null > test.sh
#把test.sh文件的输出重定向到1.txt,覆盖1.txt文件
sh test.sh > 1.txt
#把test.sh文件的输出重定向到1.txt,输出内容是追加到1.txt中
sh test.sh >> 1.txt
10.?三元运算符
#!/bin/bash
a=10
(( t=a>50?a:0 ))
echo $t
11.$变量替换
#!/bin/bash
a=10
echo $a
12. ()括号
# 初始化数组
#!/bin/bash
arr=(1 2 3 4)
13. [ ] 中括号
条件表达式使用中括号,引用数组元素
#!/bin/bash
a=10
b=5
if [ $a -gt $b ]
then echo "a is more then b"
else
then echo "a is less than b"
fi
c=(1 2 3 4)
echo ${c[2]}
14. | 管道
将|前面的结果通过管道带到|后面的变量
# 将磁盘空间带root的盘符输出
df -h|grep root
二、变量和参数
1.定义变量
#!/bin/bash
a=10
b=5
2.引用变量
#!/bin/bash
a=10
echo $a
3.位置参数 0:脚本本身 1表示传入脚本的第一个参数 2…以此类推
#!/bin/bash
a=$1
b=$2
echo $a
echo $b
保存为test.sh
sh test.sh 1 2
1
2
4.算术运算符 + - * / %
使用运算符时需要跟expr表达式一起
#!/bin/bash
a=10
b=5
c=`expr $a + $b`
echo $c
5.关系运算符 gt lt eq
#!/bin/bash
a=10
b=20
if [ $a -gt $b ]
echo $a
6.逻辑运算符 && ||
#!/bin/bash
a=10
b=5
if [[ $a -gt 5 && $b -gt 0 ]]
then echo "hi"
fi
7.字符串运算符
= 判断字符串是否相等
n判断字符串是否为空
8.文件运算符
e 判断文件是否存在
三、流程控制语句
1.if
if condition
then command
elif condition
then command
else
command
fi
2.for
#!/bin/bash
for i in `seq 1 100`
do echo $i
done
3.while
#!/bin/bash
a=5
while [ $a -gt 0 ]
do
echo $a
a=`expr $a - 1`
done
4.case
#!/bin/bash
a=test
case $a in
test) echo "test";;
prod) ehco "prod";;
esac