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

一·、变量名称规范性

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

变量名格式定义

  WESTOS_LINUX
  Westos_Linux
  westoS_Linux

例:

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

在这里插入图片描述
二、字符转义及变量声明

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

“”与‘’两者的区别

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

例:
在这里插入图片描述

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

例:
【1】

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

在这里插入图片描述
【2】

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

【3】

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

在这里插入图片描述
四、修改命令行提示符环境变量
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目录 \$输出$

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
五、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

在这里插入图片描述
在这里插入图片描述
【2】

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

在这里插入图片描述
在这里插入图片描述
六、变量值传递

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

区别:

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

测试:
【1】

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

在这里插入图片描述
在这里插入图片描述
【2】

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

在这里插入图片描述
在这里插入图片描述
【3】

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

在这里插入图片描述
在这里插入图片描述
【4】

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

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值