shell for循环命令行_shell基础编程

0b98b947edca2a75697f4d26362c75c8.png

shell基础编程


1创建:

使用 vim 命令创建以.sh结尾的 脚本文件

#!/bin/bash——第一行写上

2执行:

  • 要给脚本可执行权限
  • 直接在命令行输入shell脚本路径(包括后缀)

注意:如不给可执行权限,也可执行,就要在脚本前使用命令sh执行

以后台的方式运行:可在一个脚本中执行另一个shell脚本

如在yourshell.sh中写入:

./myshell.sh &&

3变量

系统变量

如HOME PATH USER等

set指令可用查看全部

  • 定义变量:变量=值
  • 撤销变量:unset 变量

引用变量:$变量

输出:echo “内容”

  • 静态变量定义:readonly 变量=值
  • 静态变量不能 unset

4定义变量的规则

  1. 变量名不能以数字开头
  2. 等号两侧不能有空格
  3. 变量名一般习惯大写

5将命令的返回值赋给变量

A=`ls -la /home` 反引号,运行里面的命令,并把结果返回A
A=$(ls -la /home)等价反引号

6设置环境变量

在/etc/profile文件定义环境变量

export 变量名=变量值——将shell变量设置为环境变量

需要使用source /ect/profile使环境变量生效

7位置参数变量

如:./myshell.sh 100 200——在shell脚本内部可以获取到这两个参数

$n——$0代表参数本身,$1-$9代表1至9个参数,10以上的参数要用{}包,如${10}

$*——代表命令行中的所有参数,把所有参数当成一个整体

$@——代表命令行中的所有参数,不过把每个参数分别对待

$#——命令行中的参数个数

8预定义变量

shell设计者事先定义好的变量,可直接在shell中使用

$$——当前进程的进程号

$!——后台运行的最后一个进程的进程号

$?——最后一次执行命令的返回状态(0即执行正确,非0则执行不正确,具体为哪个值由命令决定)

9运算符

基本语法

1. $((运算式))   或   $[运算式] 
2. expr m + n——注意,运算符之间要有空格,为一命令,需要用反引号括起来``
3. expr m - n
4. *,/,%——乘号需要反斜杠

10条件判断

基本语法:

[ condition ]——注意:condition前后要有空格

非空则返回true,可以使用$?验证(返回0为true)

869b36dd1632e3abc2db05eb23751cdd.png
#判断字符串是否相等
if [ "ok" = "ok" ]
then
    echo "equal"
fi

#判断数字大小
if [ 23 -gt 22 ]
then
    echo "大于"
fi

#判断文件时=是否存在
if [ -e /root/shell/a.txt ]
then 
    echo "存在"
fi

11流程控制

  • if判断
if [ condition ];then 
    程序
fi
或者
if [condition]
    then 
        程序
    elif [ condition ]
        then
            程序
fi
推荐使用第二种
  • case
case $变量名 in
    "值1")
    如果变量等于值1,则执行程序1
    ;;
    "值2")
    如果变量等于值2,则执行程序2
    ;;
    ···省略其他分支···
    *)
    如果变量的值都不是以上的值,则执行此程序
    ;;
esac
  • for循环
基本语法1
#这里可以看出$*和$@的区别
for 变量 in 值1 值2 值3···
    do
        程序
    done
基本语法2
for((初始值;循环控制变量;变量变化))
    do
        程序
    done
  • while循环
基本语法1
while [ condition ]
    do
        程序
    done

12获取控制台输入

read (选项) (参数)

选项:
    -p——指定读取值时的提示符
    -t——指定读取值时的等待时间,超时输入将不等待

13系统函数(部分)

  • basename——返回完整路径的最后/后面的部分,常用于获取文件名
basename /home/aaa/a.txt //输出a.txt
basename /home/aaa/a.txt .txt //输出a
  • dirname——获得除去/及后面的部分的前面的路径
dirname /home/aaa/a.txt //输出/home/aaa

14自定义函数

基本语法([]中的可不写)
[function] funname[()]{
    Action;
    [return int;]
}
调用直接写函数名 function[值]

#一个函数
function getSum(){
    SUM=$[$n1+$n2];
    echo "和是=$SUM"
}

#从键盘缓存读入
read -p 请输入第一个数 n1
read -p 请输入第一个数 n2

#调用
getSum $n1 $n2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值