shell编程

作者: Summer2077 | 来源:发表于2020-09-21 12:09 被阅读0次

shell是一个命令解释器

shell脚本的执行方式:

一般以.sh 结尾

开头:

#/bin/bash

方式1:给出文件权限(推荐)

权限:

chmod 744 myShell.sh

执行相对路径,绝对路径都可以

方式2:(sh+脚本)不推荐

sh ./myShell.sh

shell的变量:

shell中的变量分为 系统变量用户自定义变量

1.系统变量

$HOME
$PWD
$SHELL
$USER
...

2.显示当前shell中的所有变量

set

shell变量的定义

定义变量:变量 = 值
撤销变量: unset 变量
静态变量:readonly 变量 不能usnet

#显示行号
:set nu

变量定义的规则:

  • 数字字母下滑线组成,数字不可以开头
  • 等号两侧不能有空格
  • 变量名习惯使用大写

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

A=`res`
A=$(res)   推荐使用

设置环境变量:

export 变量名=变量值 (将shell变量输出)
source 配置文件  (使配置文件生效)
echo $变量名

多行注释:

:<<!
.....
!

位置参数变量:

$0 $1 $2 ... ${10} ${11}
$*  获取所有参数  把参数看为一个整体
$@  获取所有参数  区别对待参数
$#  参数的个数

预定义变量:

$$   #当前进程号
$!   #后台运行最后一个进程进程号
$?   #脚本执行状态

运算符的使用:

$((运算符))   
$[运算符]  (推荐)
`expr m + n`
  • 计算 (2+3)*4

条件判断:

基本语法:

[ condition ] (condition前后有空格)

判断语句:

1.两个整数的比较:

= 字符串
-lt <
-le <=
-eq ==
-gt >
-ge >=
-ne !=

2.文件权限

-r 读权限
-w 写权限
-x 执行权限

3.文件类别

-f 文件存在并是一个常规文件
-e 文件存在
-d 文件存在并是一个目录

流程控制

if判断语句

# else if
if [ condition ]
then
    程序
elif [ condition ]
    程序
fi

# else 
if [ condition ]
then
    程序
else
    程序
fi

case语句

#!/bin/bash
case $1 in
"1")
        echo "周一"
;;
"2")
        echo "周二"
;;
*)
        echo "other"
esac

for 循环

#类似于java中的增强for循环
for 变量 in 值1 值2 值3
    do
        程序
    done
    
#一般的for循环
for ((初始值;循环控制条件;变量变化))
do
    程序
done

例子1:

#!/bin/bash
#$*
num1=$*
for i in "$*"
do
        echo "numebr is $i"
done

#$@
num2=$@
for i in  "$@"
do
        echo "number is $i"
done

例子2:

sum=0
for (( i=0 ; i<10 ; i++ ))
do
        sum=$[$sum+$i]
done
echo "$sum"

while循环

while [ condition ]
do 
    程序
done

例子1:

#!/bin/bash
i=0
sum=0
while [ $i -le $1 ]
do
        sum=$[$i+$sum]
        i=$[$i+1]
done
echo "sum = $sum"

读取控制台的输入:

read (选项) (参数)
-p: 指定读取时式的提示符
-t: 指定等待时间

例子:

#!/bin/bash

函数

系统函数

basename

功能:返回完整的路径最后/的部分,常用于获取文件名

basename[pathname][suffix]
basename[string][suffix]

dirname返回路径部分

dirname[stirng][suffix]

自定义函数

function funname()
{
action;
return int;
}

例子:

#!/bin/bash
function getsum(){
sum=$[$a+$b]
echo "$sum"
}

read -p "输入数字a" a
read -p "输入数字b" b
getsum $a $b

相关文章

  • shell 案例

    Shell编程一 Shell防范ARP攻击 Shell编程二 Shell防范DDos攻击 Shell编程三 ...

  • shell 第一天

    shell编程初识 1.1 shell编程初识 shell的定义 Shell 是命令解释器 Shell 也是...

  • 78.shell编程

    shell编程 Shell脚本,是一种为shell编写的脚本程序。 Shell编程跟JavaScript、Pyth...

  • 2019-01-25

    Linux系统Shell编程指南 前言 适合人群:有类似C编程基础的人 一、Shell编程介绍 Shell解释型语...

  • day 28

    shell编程基础 shell编程一小时光速入门web集群架构会用到shell编程基础 1、为什么要学shell编...

  • Shell 编程的 Hello World

    什么是 Shell?简单来说,Shell 编程是对 Linux 命令的逻辑化处理。 来看看 Shell 编程是如何...

  • Shell 编程的 Hello World

    什么是 Shell?简单来说,Shell 编程是对 Linux 命令的逻辑化处理。 来看看 Shell 编程是如何...

  • 后端运维人员必备shell编程入门

    本文转载自 公众号 Snailclimb Shell 编程入门 走进 Shell 编程的大门 为什么要学Shell...

  • shell编程

    Shell脚本,是一种为shell编写的脚本程序。 Shell编程跟JavaScript、Python编程一样,只...

  • day28-2019年4月9日

    shell编程基础 1、为什么要学shell编程? linux系统中会大量得使用shell,工作中也需要...

网友评论

    本文标题:shell编程

    本文链接:https://www.haomeiwen.com/subject/bjlvyktx.html