Linux第六天 shell

shell脚本必须以#!/bin/bash/开头 (相当于c语言 #include<stdio.h>),shell脚本文件后缀为sh,没有也行,Linux对后缀没明确要求

脚本需要有可执行权限(chmod赋予权限),那样可以用./shell文件 执行,不然就用sh shell文件 执行(相对绝对路径都可)

Linux Shell 中的变量分为,系统变量和用户自定义变量。
系统变量:$HOME、$PWD、$SHELL、$USER 等等,比如: echo $HOME 等等..

显示当前 shell 中所有变量:set

定义变量用 变量名=值,等号两侧不能有空格,变量名一般用大写字母定义(只是规范,小写的也可以运行),输出变量需要加上$输出,例:A=100 echo $A

撤销用unset 变量名

readonly定义静态变量 静态变量不可撤销

 

注释:单行用#,

多行用

:<<! 

注释内容

!

 

用反引号获取返回值 例 A='date',A=$(date) 等价于反引号

设置环境变量(定义全局变量在在/etc/profile文件中写)

1) export 变量名=变量值 (功能描述:将 shell 变量输出为环境变量/全局变量)
2) source 配置文件 (功能描述:让修改后的配置信息立即生效)
3) echo $变量名 (功能描述:查询环境变量的值)

位置参数变量
介绍:当我们执行一个 shell 脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
比如 : ./myshell.sh 100 200 , 这个就是一个执行 shell 的命令行,可以在 myshell 脚本中获取到参数信息(相当于其它语言的函数传参)

语法:$n (功能描述:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用
大括号包含,如${10})
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#(功能描述:这个变量代表命令行中所有参数的个数)

运算符

基本语法
1) “$((运算式))”或“$[运算式]”或者 expr m + n
2) 注意 expr 运算符间要有空格, 如果希望将 expr 的结果赋给某个变量,使用 ``

3) expr m - n
4) expr \*, /, % 乘,除,取余

#!/bin/bash
#案例 1:计算(2+3)X4 的值
#使用第一种方式
RES1=$(((2+3)*4))
echo "res1=$RES1"
#使用第二种方式, 推荐使用 RES2=$[(2+3)*4] echo "res2=$RES2"
#使用第三种方式 expr TEMP=`expr 2 + 3`
RES4=`expr $TEMP \* 4`
echo "temp=$TEMP"

 

条件判断
判断语句
 基本语法
  [ condition ](注意 condition 前后要有空格)
  #非空返回 true,可使用$?验证(0 为 true,>1 为 false)
 应用实例
  [ asd ] 返回 true
  [ ] 返回 false
  [ condition ] && echo OK || echo notok 条件满足,执行后面的语句

判断语句
    常用判断条件
  1) = 字符串比较
  2) 两个整数的比较
  -lt 小于
  -le 小于等于 little equal -eq 等于
  -gt 大于
  -ge 大于等于
  -ne 不等于

  3) 按照文件权限进行判断
  -r 有读的权限
  -w 有写的权限
  -x 有执行的权限
  4) 按照文件类型进行判断
  -f 文件存在并且是一个常规的文件
  -e 文件存在
  -d 文件存在并是一个目录

if判断基本语法

  if [ 条件判断式 ]
  then
  代码
  elif [条件判断式]
  then
  代码
  fi

Linux第六天 shell

case语句

Linux第六天 shell

 

 for循环

Linux第六天 shell

 

 while语句(while 和 [有空格,条件判断式和 [也有空格)

 

 

 

#!/bin/bash
#案例 1 :从命令行输入一个数 n,统计从 1+..+ n 的值是多少?
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
#i 自增
i=$[$i+1]
done
echo "执行结果=$SUM"

read 读取控制台输入
基本语法
read(选项)(参数)
选项:
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。。
参数
变量:指定读取值的变量名

#!/bin/bash
#案例 1:读取控制台输入一个 NUM1 值
read -p "请输入一个数 NUM1=" NUM1
echo "你输入的 NUM1=$NUM1" #案例 2:读取控制台输入一个 NUM2 值,在 10 秒内输入。
read -t 10 -p "请输入一个数 NUM2=" NUM2
echo "你输入的 NUM2=$NUM2"

自定义函数

#!/bin/bash/
#定义函数 getSum
function getSum() {
SUM=$[$n1+$n2]
echo "和是=$SUM" }
#输入两个值
read -p "请输入一个数 n1=" n1
read -p "请输入一个数 n2=" n2
#调用自定义函数
getSum $n1 $n2

 

上一篇:Shell基本语法---基础


下一篇:GO语言AST名词解释