shell脚本编程基础

shell脚本是shell命令按一定语法组成的文件,首先在内存中寻找内置命令,找不到再到path文件路径中寻找外部命令。

打开vi编辑器,后缀为.sh

sudo vi hello.sh
#!/bin/bash 
#指定解析器
echo "hello,woeld"

:wq保存退出

修改权限

sudo chmod 777 hello.sh

shell启动方式有4种

./hello.sh
.bin/bash hello.sh
source hello.sh
.hello.sh

shell脚本语法

#定义变量3种方法
var=1234 #没空格
echo "$var"#使用变量:可加上大括号

var='1234 567' #有空格
var1="${var}aa"  #双引号适用于有引用情况下
echo "$var1" #打印变量

#将命令结果赋值给变量
var2=`pwd` #反括号!!!
var2=$(command)

#删除变量
unset var

特殊变量

#字符串拼接
var1=$(pwd)aaa

#读取键盘输入
read a
read b
echo "${a}"
echo "${b}"
#加上提示
read -p "input a:" a

#退出当前进程
exit
#若exit 111,则echo $?打印111(上个命令的退出状态)

#对整数进行数学运算
var1=(( a+b ))

#逻辑与或
&& ||

#检测条件是否成立
test expression
[expression]
#例如:
test $a -eq $b && echo "a==b" #a=b则输出后面语句(通路)
test $a -eq $b || echo "a!=b" #a=b则不输出后面(断路),a不等于b则输出后面的
[ $a -eq $b ] && echo "a==b"
[ $a -gt $b ] || echo "a=<b" #判断是否大于
[ -z $a ] || echo "a=<b" #判断字符串a是否为空,非空则打印
[ -d $a ] && echo "${a}" #a是文件目录则输出文件目录

#管道 命令1 | 命令2
ls | grep "123.txt" #查找ls所显示目录中包含123.txt的文件



if语句 

#if
if [ $a -eq $b ]
then
    echo "a=b"
fi

#if else
if [ $a -eq $b ]
then
    echo "a=b"
else
    echo "a!=b"
fi

#if elif else
if [ $a -eq $b ]
then
    echo "a=b"
elif [ $a -gt $b ]
then 
    echo "a>b"
else
    echo "a<b"
fi

case 语句

case $a in
    1)
        echo "a=1"
        ;;
    2)
        echo "a-=2"
        ;;
    *)
        echo "a!=1&&a!=2"
    ;;
esac

for in循环

for n in 1 2 3 4 5 6 7 8 9 10 #具体值
do    
    echo "$n"
done

for n in {1..10} #取值范围
do    
    echo "$n"
done

#命令执行结果或者shell通配符
for n in $(ls /bin/*sh) 
do    
    echo "$n"
done

for n in $*  #特殊变量$*
do    
    echo "$n"
done

for n in $@  #特殊变量 $@
do    
    echo "$n"
done
上面两个运行结果一样,输入1 2 3 4,输出
1
2
3
4
$*加上”“就不一样了,$@加上还是一样
for n in ”$*“  #特殊变量$*
do    
    echo "$n"
done
输出1 2 3 4,把输入视为一个整体

while循环

while (( n < 10 ))
do     
    echo "${n}"
    n=$(( n+1 ))
done

函数

function my_name(){
    echo "embedfire"
}
在终端输入my_name即可调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值