Shell编程(1)

前端之家收集整理的这篇文章主要介绍了Shell编程(1)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Shell是用户与Linux操作系统沟通的桥梁

Linux的Shell种类众多,这里我们学习的是bash,也就是Bourne Again Shell

1:由于易用和免费,Bash在日常工作中被广泛使用

2:Bash是大多数Linux系统默认的Shell。

文件名后缀通常是.sh

#!/bin/bash

For循环

格式1
for ((i=0;i<10;i++))
do
  ...
done
格式2
for i in 0 1 2 4 5  8 9 
do 
...
done
格式三
#!/bin/bash
for i in {0..9}
do
echo $i
done

条件测试

bash条件测试
     命令执行成功与否即为条件测试
          test EXPR 
          [ EXPR ]:注意中括号和表达式之间的空格
     整型测试:
          -gt:大于:例如[ $num1 -gt $num2 ]或者test $num1 -gt $num2
          -lt:小于
          -ge:大于等于
          -le:小于等于
          -eq:等于
          -nq:不等于
     字符串测试:
          > 大于[ "$str1" \> "$str2" ] 注意测试符号左右的空格
          < 小于
          =
          !=

算术运算

let varNamer=算术表达式

varName=$[算术表达式]

varName=$((算术表达式))

varName=`expr $num1 + $num2`
使用这种格式要注意两个数字和+号中间要有空格。

while/until循环

#!/bin/bash
while [ $1 -gt 2 ]
do

echo "true"
sleep 1
done

if判断

#!/bin/bash
if [ $1 -eq 1 ] 
then
echo 'one'
elif [ $1 -eq 2 ]
then
echo 'two'
elif [ $1 -eq 3 ]
then
echo 'three'
else
echo 'none'
fi

case判断

#!/bin/bash
case $1 in
1)
echo 'one'
;;
2)
echo 'two'
;;
3)
echo 'three'
;;
*)
echo 'none'
;;
esac

循环控制命令-break

#!/bin/bash
while [ 1 -eq 1 ]
do

for ((i=0;i<10;i++))
do
if [ $i -eq 2 ]
then
break 2
fi
echo $i
done
echo 'yes'
sleep 1
done

循环控制命令-continue

#!/bin/bash
for ((i=0;i<10;i++))
do
if [ $i -eq 2 ]
then
continue
fi
echo $i


done

自定义函数

#!/bin/bash
function currtime(){
echo "current time is"`date +%Y-%m-%d`
}

#!/bin/bash
source fun.sh

test $1

date

显示当前时间

格式化输出 +%Y-%m-%d

格式%s表示自1970-01-01 00:00:00以来的秒数

指定时间输出 --date='2009-01-01 11:11:11'

指定时间输出 --date='3 days ago'

read

read VAR_NAME

read -p "Enter your name:" VAR_NAME

read如果后面不指定变量,那么read命令会将接收到的数据放置在环境变量REPLY中

read -t 5 -p "enter your name:" VAR_NAME

read -s -p "Enter your password: " pass

后台模式运行脚本

在脚本后面加一个&
test.sh &
这样的话虽然可以在后台运行,但是当前会话窗口关闭之后这个脚本也会停止运行

使用nohup test.sh &
nohup命令将进程和终端分开,所以关闭当前会话窗口不会影响这个进程的执行。
nohup会在当前执行的目录生成一个nohup.out日志文件

猜你在找的Bash相关文章