Shell入门-bash变量


变量
计算机内存单元,其存放的值可以改变。
字母数字和下划线,但不能以数字开头

在linux中,变量的默认类型为字符串类型
变量的定义中,若要使用空格,需要使用’ab c’或者"ab cd"
变量中,可以使用转义符""
变量值的叠加,使用" 变 量 名 " 、 " 变量名"、" ""{变量名}"
name=$(命令)
环境变量建议是用大写,便于区分

name = $(date)
name = 'a b'
name = "a b"
name = linux

分类:
用户自定义变量
环境变量:主要保存的是和系统操作环境相关的数据
位置参数变量:用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
预定义变量:是bash中已经定义好的变量,变量名不能自定义,变量作用固定

用户自定义变量

变量定义

name = shen

变量调用

echo $name

变量叠加

aa=123
aa= "$aa"456	#aa=123456
aa=${aa}789		#aa=123456789

变量查看

set		#查看系统中所有变量

变量删除

unset aa	#删除变量aa

环境变量

用户自定义变量只在当前shell中生效
环境变量,会在当前shell及所有子shell中生效
配置文件中的环境变量,所有shell生效

定义

sh		#进入子shell
bash	#进入子shell
pstree	#确定进程数
exit	#退出当前shell

export name = shen	#定义环境变量
age = 18
export age

查询变量

env		#查询环境变量,set是所有变量

删除变量

unset name

系统环境变量PATH

1、作用
冒号分隔的路径
系统查找命令的路径

2、变量叠加

PATH = "$PATH":/tmp/test	#冒号之后添加要添加的路径,仅临时生效

配置文件的修改,才能永久生效

PS1

只能使用set查看
1、作用
定义系统提示符的变量

[root@loacalhost ~]#
#用户名root
#当前主机名@localjost
#当前文件名~
#提示符

\d:显示日期,格式为“星期 月 日”
\h:显示简写的主机名
\t:显示24小时制时间,“HH:MM:SS”
\T:显示12小时制时间,“HH:MM:SS”
\A:显示24小时制时间,“HH:MM”
\u:显示当前用户名
\w:显示当前所在目录的完整名称
\W:显示当前所在目录的最后一个目录
#:执行的第几个命令
$:提示符,root用户为#,普通用户为$

echo $PS1	#当前提示符格式
[\u@\h \W]\$
PS1 = '[\u@\t \w]\$ '	#\$之后最好加一个空格

位置参数变量

位置环境变量作用
$nn代表数字,$0代表命令本身,$1-$9代表第1-9个参数,十以上的参数,需要使用大括号 ${10}
$*命令行中所有的参数,所有参数为一个整体
$@命令行中所有的参数,对每个参数区分对待
$#命令行中所有参数的个数

脚本内容:

#!/bin/bash

echo $0
echo $1
echo $2

echo "A total of $# parameters"	#参数个数
echo "The parameters is : $*"	#所有参数
echo "The parameter is : $@"	#所有参数

输出

[root@18:15:08 /tmp]# ./canshu.sh 11 22 33
./canshu.sh
11
22
A total of 3 parameters
The parameters is : 11 22 33
The parameter is : 11 22 33

接收键盘输入

#直接将输入赋值给变量
read -p "name: " name 		#输出提示信息
read -t 30: age				#等待用户30秒输入,
read -n 10 -p "sex,0-girl,1-boy:": sex			#只接受指定字符数10个
read -s -p "password : ": password				#隐藏输入的数据

$* 和 $#的区别

for i in "$*"
#$*中的所有参数是一个整体,次循环只执行一次
	do
		echo "The parameter is : $i"
	done
X = 1
for j in "$@"
#$@中的每个参数都是独立的,次循环会执行n次
	do
		echo "the parameter $x is : $i"
		X=$(($x+1))
	done

预定义变量

预定义变量作用
$?最后一次执行的命令的返回状态。返回为0,上一条正确执行,返回非0,上一条命令执行错误
$$当前进程的进程号pid
$!后台运行的最后一个进程的进程号pid
ls			#正确执行
echo $?
#输出0
ls jiweo	#文件不存在
echo $?
#output:2

脚本内容

#!bin/bash
echo "the current pid is :  $$"

输出

the current pid is 3682
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值