Shell编程学习之变量的使用

  • 查看当前系统使用的命令解释器:
linux@ubuntu:~$ echo $SHELL
/bin/bash
  • shell命令:
  • 在终端上使用的命令,例如
 vi a.c
 gcc a.c
 ./a.out
  • shell脚本:
  • 其是一个.sh文件,里面都是命令的集合,以及一些复杂的逻辑;
  • 执行shell脚本的三种方式:
  • ./脚本名
  • bash 脚本名
  • source 脚本名
  • 脚本中的变量命名规范:
  • 由数字、字母、下划线构成;
  • 不能以数字开头;
  • 不能和shell语言的关键字冲突;
  • 一般情况下,变量的英文字母要大写;
  • 引用变量值:
  • $变量名OR${变量名};例如:
K1=welcometobeijing
echo $K1
  • 清空变量值:
  • unset 变量名;例如:
unset K1
  • 测试脚本:
#!/bin/bash

K1=WELCOMETOBEIJING
echo $K1

K2="WELCOME TO BEIJING"
echo $K2
K3="WELCOME TO HENAN"
echo $K3

K4="HI $K2"
echo $K4

K5="HELLO $K3 HAVE FUN"
echo $K5

K6="${K1}HEVE A GOOD TIME"
echo $K6

K7=$K1
echo $K7

unset K1
K8=$K1
echo $K8

  • 运行结果:
WELCOMETOBEIJING
WELCOME TO BEIJING
WELCOME TO HENAN
HI WELCOME TO BEIJING
HELLO WELCOME TO HENAN HAVE FUN
WELCOMETOBEIJINGHEVE A GOOD TIME
WELCOMETOBEIJING

  • 位置变量:
  • 类比C语言中的main函数两个参数argc和argv;
  • $0:#(shell注释符号)有三种执行方式:
  • 1、./脚本名:结果:./脚本名
  • 2、bash 脚本名:结果:脚本名
  • 3、source 脚本名:结果:bash;
  • $1 ~$9:执行脚本时,命令行传递的是第一个至第九个参数,超过9,就需要加{},例如:${15};
  • $@:命令行的所有参数(不包含脚本名字),同理,$*也是这样的作用;
  • $#:命令行的所有参数的个数(不包含脚本名字);
  • $$:执行脚本的进程号PID
  • $?:判断上一条命令执行是否成功,结果为0,则成功,为1,则失败;
  • 变量的作用域:
  • 默认是全局;
  • 定义局部变量,需要在变量名增加local来修饰(注意和变量名之间存在空格);
  • 测试脚本:
#!/bin/bash

function peter(){

   K1=WANGWU
   local K2=TAIHANG
   echo $K2 #TAIHANG


}


peter #调用函数
echo $K1 #WANGWU
echo $K2 #空

  • 运行结果:
TAIHANG
WANGWU

  • 只读变量:
  • 需要使用readonly关键字修饰;
  • 不能给只读变量赋值,会报错,例如:
readonly K1=YUCHUAN
K1=HAUNGHE 
echo $K1 #报错
  • 命令置换符:
  • 把命令执行的结果赋值给变量;
  • $()和反引号``,例如:
K1=$(ls -l)
echo $K1
K2=`ping 192.168.2.88`
echo $K2

你可能感兴趣的:(学习,笔记,物联网,嵌入式硬件,单片机,vim,vscode)