Shell基本用法
自定义变量
#!bin/bash echo "hello,world!" echo "PATH=$PATH" echo "user=$USER" A=100 echo "A=$A" #自定义变量 uset A echo "A=$A" #unset一个变量
输出结果:
两种执行方式:
静态变量
Shell变量的定义
#!/bin/bash RESULT=`ls -l /home` echo "RESULT=$RESULT" echo '' Mydate=$(date) echo "MYdate=$Mydate"
输出结果:
未知参数变量
案例:
设置环境变量
配置环境变量
写入脚本
位置参数变量
预定义变量
输出结果:
运算符
输出结果:
条件判断
判断语句: 常用判断条件 1)两个整数的比较 = 字符串的比较 -lt 小于 -le 小于等于 -gt 大于 -ge 大于等于 -ne 不等于 2)按照文件权限进行判断 -r 有读的权限 -w 有写的权限 -x 有执行的权限 3)安札奥文件类型进行判断 -f 文件存在并且是一个常规的温家安 -e 文件存在 -d 文件存在病史一个目录
三种表达方式:
三种if...else 表达语句: 1) if ... fi 语句; 2) if ... else ... fi 语句; 3)if ... elif ... else .. fi 语句;
(1)if ... fi...
#!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a is equal to b" fi 运行结果: 空
(2)if ... else...
写成一行表达式:[ $a == $b ]; then echo 'The two numbers are equal!'; fi;
#!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a is equal to b" else then echo "a is not to b" fi 运算结果: a is not equal to b
(3)if...elif ... else...fi 语句(可以对多个条件进行判断)
#!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a is equal to b" elif [ $a -gt $b ] then echo "a is greater than b" elif [ $a -lt $b ] then echo "a is less than b" else echo "None if the condition met" fi 运算结果: a is less than b
其他用法:
if ... else 语句 经常与test命令结合使用: num1=$[2*3] num2=$[1+5] if test $[num1] -eq $[num2] then echo "The two numbers are equal!" else echo "The two numbers are not unqual!" fi 运算结果: The two numbers are equal! test 命令用于检查某个条件是否成立,与方括号([ ])类似。
case用法
#!/bin/bash #案例1:当命令行参数是1时,输出“周一”,是2时,就输出“周二”,其他情况输出“other” case $1 in "1") echo "周一" ;; "2") echo "周二" ;; *) echo "other" ;; esac
for循环用法
#!/bin/bash #案例一:打印命令输入的参数 #使用 $* for i in "$*" do echo "the num is $i" done #使用$@ for j in "$@" do echo "the num is $j" done
输出结果:
for的第二种用法
#!/bin/bash #案例:从1加到100的值输出显示 #定义一个变量 SUN=0 for ((i=0;i<=100;i++)) do SUM=$[$SUM+$$i] done echo "sum=$SUM"
输出结果:
sum=5050
while用法
#!/bin/bash #案例:从命令行输入一个数n,统计从1+..+n的值是多少 SUM=0 i=0 while [ $i -le -$1 ] do SUM=$[$SUM+$i] i=$[$i+1] done echo "sum=$SUM"
read控制平台操作
#!/bin/bash #案例1:读取控制台输入一个num值 read -p "请输入一个数num1="NUM1 echo "请输入的值是num1=$NUM1" #案例2:读取控制台输入一个num值,在10秒内输入 read -t 10 -p "请输入一个数num2=" NUM2 echo "你输入的值是num2=$NUM2"
basename及dirname用法
basename用法:
1)bash:basename /home/aaa.txt 输出:aaa.txt 2)bash:basename /home/aaa.txt.txt 输出:aaa.txt.txt
dirname用法:
自定义函数function
#!/bin/bash #案例:计算输入两个参数的和(read),getSum function getSum(){ SUM=$[$n1+$n2] echo "和是=$SUM" } read -p "请输入第一个数n1" n1 read -p "请输入第二个数n2" n2 #调用getSum getSum $n1 $n2
输出结果: