shell脚本入门基础知识

shell 脚本的第一行

!/bin/bash

!/bin/sh 其实,sh是bash的一个软链接 sh -> bash

变量,字母下划线开头(好像是没有类型的)

普通变量

var1=nihao #不能有空格
echo \(var1 #使用\)表示变量

环境变量

echo $JAVA_HOME #全局变量用全大写
/etc/profil/e #全局环境变量存储位置

用户环境变量

/home/cen/.bash_profile #编辑文件后需要用source命令更新

删除变量

unset 变量名

位置参量,用于传递参数

定义位置参量

echo "Hello $1 !!" #用$1,\(2....\){10},${11} ...表示接受到的第n个参数
#\(0 表示当前脚本的文件名 #\)# 表示传入参数个数
#$? 上一个命令的状态嘛,有一些依赖关系必须知道之前的执行情况

传入参数

./xxx.sh 参数一 参数二 #用空格分隔位置参数,如果位置参数有空格,使用"hello world!"

数组

数组定义

arr=(zhangsan lisi wangwu)

数组引用

echo ${arr[0]} #zhangsan
echo ${arr[]} #zhangsan lisi wangwu
echo ${#arr{
}} #3

查看时间

当前时间

date1=$(date)

一天前

date2=\((date --date='1 days age') date2=\)(date --date='1 days')

一天后

date3=\((date --date='1 days') date3=\)(date --date='-1 days ago')

判断test -e filename 或者 [ -e filename ] []两端一定要有空格

文件类型判断

-e 判断文件是否exist

-f 是否为file

-d 是否为dir

权限判断

-r 可读

-w 可写

-x 可执行

判断整数

-eq equal 相等

-ne not equal 不相等

-gt greater than 大于

-lt less than 小于

判断字符串

-z zero 空字符串

-n not 非空

=/== 相等

!= 不等

if语句

if [ -f "filename" ] && [ -e "filename" ] ; then
#todo...
#todo...
elif [ -e "filename" ]
#todo...
else
#todo...
fi

for循环

for循环(1)

for var in 1 2 3 4 5
do
#todo...
done
#for循环(2)
n=10
sum=0
sum2=0
for((i=0;i<\({n};i=i+1)) do sum=\)((\({sum1}+\)(i))) #正儿八经的加法
sum2=\({sum2}+\){i} #字符串拼接
done

while循环

正经点while

while [ -e "filename" ]
do
#todo...
done
#当到型while
until [ -e "filename" ]
do
#todo...
done

配合cat和管道函数的while(不会应用场景)

cat a.txt | while read line

神奇的$符号

${变量}
$(可执行语句) #(1+1)带括号的才是可执行语句

执行shell脚本的四种方式

$/home/user/xxx.sh
$./xxx.sh
$. xxx.sh
$sh xxx.sh
四种方式区别

posted @ 2017-05-30 18:11  岑忠满  阅读(319)  评论(0)    收藏  举报