shell脚本编程学习笔记2(xdl)——Bash变量
shell脚本编程学习笔记2——Bash变量
1,变量简介
1,计算机内存单元2,设置规则字母数组下划线组成,不能以数字开头Bash中,默认类型字符串型,变量类型可修改
2,Bash变量规则
1,变量用等号连接值,等号左右两侧不能有空格。 (Linux中空格代表命令之间的区分)
2,变量的值如果有空格,需要使用单引号或双引号包括。
3,在变量的值中,可以使用“\”转义符
4,如果需要变量拼接,那么可以进行变量值的叠加。不过变量需要用双引号包含 “$变量名”或用${变量名}包含。
5,如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令
6,环境变量名建议大写,便于区分
3,变量分类
1,用户自定义变量,保存环境当前shell
2,环境变量,主要保存和系统操作环境相关数据
3,位置参数变量,主要用来向脚本传递数据,不可自定义,作用固定
4,预定义变量,Bash中定义好的变量,变量名不可自定义,作用固定
1,用户自定义变量
1,简介
在本地定义的变量,只适用于当前shell
2,简单实例:
[root@iZwz9h901rvv69020rk7fsZ sh]# name="dun huang"[root@iZwz9h901rvv69020rk7fsZ sh]# echo "$name"dun huang[root@iZwz9h901rvv69020rk7fsZ sh]# name="$name"' de tuo ling'[root@iZwz9h901rvv69020rk7fsZ sh]# echo "$name"dun huang de tuo ling[root@iZwz9h901rvv69020rk7fsZ sh]#
3,操作:
变量调用 [root@localhost ~]# echo $name变量查看 [root@localhost ~]# set变量删除 [root@localhost ~]# unset name
2,环境变量
1,简介
用户自定义变量只在当前的Shell中生效, 而环境变量会在当前Shell和这个Shell的所 有子Shell当
中生效。如果把环境变量写入 相应的配置文件,那么这个环境变量就会 在所有的Shell中生效
2,设置
export 变量名=变量值 # 申明变量
env # 查询变量
unset 变量名 # 删除变量注意:系统常见环境变量1,$PATH[root@localhost ~]# echo $PATH /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin: /sbin:/bin:/usr/sbin:/usr/bin:/root/bin2,PS1PS1:定义系统提示符的变量 \d:显示日期,格式为“星期 月 日” \h:显示简写主机名。如默认主机名“localhost” \t:显示24小时制时间,格式为“HH:MM:SS” \T:显示12小时制时间,格式为“HH:MM:SS” \A:显示24小时制时间,格式为“HH:MM” \u:显示当前用户名 \w:显示当前所在目录的完整名称 \W:显示当前所在目录的最后一个目录 \#:执行的第几个命令 \$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户 会显示提示符为“$
3,实例
[root@localhost ~]# PS1='[\u@\t \w]\$ '
[root@04:50:08 /usr/local/src]#PS1='[\u@\@ \h \# \W]\$‘
[root@04:53 上午 localhost 31 src]#PS1='[\u@\h \W]\$ '
3,位置参数变量
1,简介
$n n为数字,$0代表命令本身,$1-$9代表第一 到第九个参数,十以上的参数需要用大括号 包含,如${10}.
$* 这个变量代表命令行中所有的参数,$*把所 有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过 $@把每个参数区分对待
$# 这个变量代表命令行中所有参数的个数
2,实例
#!/bin/bash
num1=$1
num2=$2 sum=$(( $num1 + $num2))
# 变量 sum 的和是 num1 加 num2
echo $sum
# 打印变量sum 的值#!/bin/bash
echo "A total of $# parameters"
# 使用 $# 代表所有参数的个数
echo "The parameters is: $*"
# 使用 $* 代表所有的参数
echo "The parameters is: $@"
# 使用 $@ 也代表所有参数#!/bin/bash
for i in "$*"
#$* 中的所有参数看成是一个整体,所以这个 for 循环只会循环一次do echo "The parameters is: $i" done
x=1
for y in "$@"
#$@ 中的每个参数都看成是独立的,所以“ $@ ”中有几个参数,就会循环几次do echo "The parameter$x is: $y" x=$(( $x +1 )) done
4,预定义变量
1,简介
$? 最后一次执行的命令的返回状态。如果这个变 量的值为0,证明上一个命令正确执行;如果 这个变量的值为非0(具体是哪个数,由命令 自己来决定),则证明上一个命令执行不正确 了。
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
2,实例
#!/bin/bash
echo "The current process is $$"
# 输出当前进程的 PID 。
# 这个 PID 就是 variable.sh 这个脚本执行时,生成的进程的 PID find /root -name hello.sh &
# 使用 find 命令在 root 目录下查找 hello.sh 文件
# 符号 & 的意思是把命令放入后台执行,工作管理我们在系统管理章节 会详细介绍echo "The last one Daemon process is $!"
3,接受键盘输入
shell脚本编程学习笔记2(xdl)——Bash变量相关推荐
- shell脚本编程学习笔记3(xdl)——Bash变量的运算与测试
Bash变量的运算与测试 1,数值运算和运算符 declare申明变量类型也就是说变量运算没有申明的时候,会以字符串形式的拼接, 只有把变量声明为数值型的时候才可以运算,申明变量为数值型有 三种方法方 ...
- shell脚本编程学习笔记4(xdl)——Bash常见环境变量
shell脚本编程学习笔记4--Bash常见环境变量 非专业运维,例如开发人员,环境变量熟悉常见的,了解不常见的即可. 1,简介 环境变量配置文件中主要是定义对系统的 操作环境生效的系统默认环境变量, ...
- shell脚本编程学习笔记1(xdl)——shell基础与Bash基本功能()
shell脚本编程学习笔记1--shell基础与Bash基本功能 1,简介: 1,Shell就是一个命令行解释器,用以连接输入设别和内核. 2,Shell是解 释执行的脚本语言,在Shell中可以直接 ...
- shell脚本编程学习笔记6(xdl)——字符串截取命令
shell脚本编程学习笔记6--字符串截取命令 1,cut命令 [root@localhost ~]# cut [选项] 文件名-f 列号,表示提取第几列-d 分隔符,按照指定的分隔符分割列注意:默认 ...
- shell脚本编程学习笔记8(XDL)——流程控制和循环
shell脚本编程学习笔记8--流程控制和循环 1,if语句 1,框架 1,单分支:if [条件判断式] ;thenprogramfiif [条件判断式]thenprogramfi注意:if语句使用f ...
- shell脚本编程学习笔记5(xdl)——正则表达式
shell脚本编程学习笔记5--正则表达式 1,简介 正则表达式,用来在文件中匹配符合条件的字符串,包含匹配.注意是文件中选择字符串,和通配符是 不同的.grep,awk,sed等命令可以支持正则表达 ...
- shell脚本编程学习笔记7(XDL)——字符处理命令和条件判断
shell编程学习笔记--字符处理命令和条件判断 1,字符处理 [root@localhost ~]# sort [选项] 文件名 选项: -f: 忽略大小写 -n: 以数值型进行排序,默认使用字符串 ...
- shell脚本编程 学习笔记
1.shell简介 1.1 什么是shell Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...
- Linux Shell脚本编程学习笔记和实战
http://www.1987.name/141.html shell基础 终端打印.算术运算.经常使用变量 Linux下搜索指定文件夹下特定字符串并高亮显示匹配关键词 从键盘或文件里获取标准输入 [ ...
最新文章
- flask 学习实战项目实例
- Leet Code OJ 283. Move Zeroes [Difficulty: Easy]
- SAP Spartacus build error之后的retrigger方式
- gRPC真要取代WebApi了,你还学得过来吗?
- 2021抖音汽车生态报告
- 传智播客--itcastbbs(四)
- mysql时间戳_MySQL 时间戳(Timestamp)函数
- 单元测试和sit测试和uat测试
- FillForm网页表单填写插件(用于火狐浏览器,自动填表,自动表单,填写表单)
- 如何在微信公众号优雅地添加代码
- 一键调整PCB丝印,超级好用
- 杭州好玩景点攻略76
- 安装Altera USB-Blaster驱动程序遇到的问题
- USYD悉尼大学DATA 2002 【R语言学习2】在 Tidyverse 中与数据通信 (Communicating with Data in the Tidyverse)
- Romax Nexus—机电一体传动系统设计与仿真平台
- 【论文】联邦学习区块链 论文集(一)
- 在VMware中安装新版Ubuntu后,无法跨虚拟机复制粘贴和拖拽文件的解决方法
- Android实现网络下载二(多任务下载--支持断点续传)
- 数据分析思维分析方法和业务知识——实战案例跨境电商行业
- 停车场管理问题——算法与数据结构
热门文章
- 【论文阅读报告】 Real-time Personalization using Embeddings for Search Ranking at Airbnb
- MATLAB数据保存
- 计算机考研 保研夏令营 经验 经历 经验总结
- 依靠大数据 社会化协同
- mysql compact_MYSQL中InnoDB和ROW_FORMAT=COMPACT - wangqiaowqo - JavaEye技术网站
- avr单片机c语言 右移,AVR左移右移递增减流水灯
- MySQL 外键约束 以及 级联操作
- 扫一扫功能在手机便签的哪里
- JAVA导入大量数据的Excel,如何分块读取并避免内存溢出?
- 读万卷书,写万行代码