shell中变量的命名、字符转义、变量声明及变量值的传递

一·、变量名称规范性

  • 变量名称中通常包含大小写字母,数字,下划线(不是必须)
  • 不是变量名中同时需要具备字母、数字、下划线,变量名只能出现这三种字符
  • 变量名不能以数字开头,只能以字母或者下划线开头

变量名格式定义

  WESTOS_LINUX
  Westos_Linux
  westoS_Linux

例:

a=1
2d=1 #错误
_s=2

shell中变量的命名、字符转义、变量声明及变量值的传递_第1张图片
二、字符转义及变量声明

  \ 转义单个字符
  ''强引用,批量转''中出现的字符
  ""弱引用,批量转译""中出现的字符

“”与‘’两者的区别

  ""不能转义 '!感叹号“,”`反向单引号“ ,”\反斜杠“,”$“
  ''可以转义元字符 * # ? ! `` ,这些字符都有自身的含义,需要转义

例:
shell中变量的命名、字符转义、变量声明及变量值的传递_第2张图片

三、${}变量声明(系统中存在的变量)

例:
【1】

  echo $ab #默认会寻找ab这个整体的变量的值
  echo ${a}b #a是变量

shell中变量的命名、字符转义、变量声明及变量值的传递_第3张图片
【2】

  a=`date`
  echo $a
  a=$(date)
  echo $a

【3】

  a=(1 2 3)定义一个数组
  echo $a不可以
  echo ${a[0]}输出数组的第一个元素
  echo ${a[1]}输出数组的第二个元素
  echo ${a[*]}输出数组的所有元素

shell中变量的命名、字符转义、变量声明及变量值的传递_第4张图片
四、修改命令行提示符环境变量
echo PS1 #输出当前提示符环境变量
下面是PS1变量中各特殊符号的含义:

  \d 显示系统日期,格式:星期 日期
  例:PS1="\d >" 结果:六 10月 24 >
  \A 显示系统时间,格式:HH:MM
  例:PS1="\A >" 结果:21:04 >
  \t 显示系统时间,格式:HH:MM:SS (24小时制)
  例:PS1="\t >" 结果:21:04:32 >
  \T 显示系统时间,格式:HH:MM:SS (12小时制)
  例:PS1="\T >" 结果:09:04:32 >
  \h 显示主机名称(简称)
  例:PS1="\h >" 结果:CentOS >
  \H 显示主机名称(全称)
  PS1="\[\u@\h \W]\$" \u用户 \h主机名 \W目录 \$输出$

在这里插入图片描述
shell中变量的命名、字符转义、变量声明及变量值的传递_第5张图片
在这里插入图片描述
shell中变量的命名、字符转义、变量声明及变量值的传递_第6张图片
五、for语句(循环)
执行脚本test.sh时连续输出
for NUM in {1…3}
do
done

  vim text1.sh
   	    for NAME in leo tom harry  #变量取值范围
    	do       #执行的动作
       		echo $NAME   #输出变量
	    done    #结束
   sh text1.sh
   sh -x text.sh

在这里插入图片描述
shell中变量的命名、字符转义、变量声明及变量值的传递_第7张图片
【2】

    vim text2.sh
		 for NAME in `seq 1 5` #1到5连续
	     do
			 echo $NAME
	     done
 	sh text2.sh
	sh -x text2.sh

shell中变量的命名、字符转义、变量声明及变量值的传递_第8张图片
shell中变量的命名、字符转义、变量声明及变量值的传递_第9张图片
六、变量值传递

	$0 脚本本身
 	$1 脚本后的第一串字符串
	$2 脚本后的第二串字符串
 	$3 脚本后的第三个字符串
	$# 脚本后跟的字符串个数
	$* 脚本后跟的所有字符串,模式为“ 1 2 3 ”
	$@ 脚本后跟的所有字符串,模式为“ 1”“2”“3”
	$$ 当前进程的pid

区别:

$@=“1” “2” “3” #分开执行
$*=“1 2 3” #识别为一串字符

测试:
【1】

	vim /mnt/test.sh   #建立脚本

shell中变量的命名、字符转义、变量声明及变量值的传递_第10张图片
shell中变量的命名、字符转义、变量声明及变量值的传递_第11张图片
【2】

	vim test.sh
		echo \$\$ is $$   #查看看当前进程pid
		watch -n 1 date
	sh test.sh  #执行脚本
	ctrl +z #打入后台
    ps f #查看当前shell的pid

shell中变量的命名、字符转义、变量声明及变量值的传递_第12张图片
shell中变量的命名、字符转义、变量声明及变量值的传递_第13张图片
【3】

	vim test1.sh
		#!/bin/bash
		for NAME in "$*"  NAME变量个数任意,直接在命令框输入
		do
			echo $NAME   #输出变量NAME
		done
	sh -x test1.sh   #检查每步执行情况

shell中变量的命名、字符转义、变量声明及变量值的传递_第14张图片
在这里插入图片描述
【4】

	vim test1.sh
	#!/bin/bash
	for NAME in "$@"  #变量个数任意
	do
		echo $NAME
	done
	sh -x test1.sh

shell中变量的命名、字符转义、变量声明及变量值的传递_第15张图片
shell中变量的命名、字符转义、变量声明及变量值的传递_第16张图片

你可能感兴趣的:(shell中变量的命名、字符转义、变量声明及变量值的传递)