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

输出结果:

 

posted @ 2019-08-24 21:45  Yan帅  阅读(676)  评论(0编辑  收藏  举报