Shell变量
来源:互联网 发布:linux 重定向 2 1 编辑:程序博客网 时间:2024/06/14 01:06
一、基本语法
在Shell编程不需要事先定义变量,也没有变量类型的区分(所有变量都是字符串),可以说“=”和“$”就是Shell变量的一切。Shell变量以字母或“”开头,由字母、数字和“”组成,变量名区分大小写
“=”,赋值符号。等号两边不可以有空格
#直接赋值A=aaaA="Hello word!"A='Hello word!' #但引号和双引号都行,但还是有区别的,后面会讲到#传命令的输出值A=`ls /etc`
**“$”,取值符号。**dollar符后面直接加变量名即可
#直接取变量的值B=$A#取命令的输出值B=$(ls /etc)
命令可以接受变量作为参数
#需要取值,不能直接把变量名写上echo $B
双引号与单引号的区别
双引号里面可以解析特殊字符,而单引号括起来的字符串是纯字符串NAME=DKecho "My name is $NAME" #输出My name is DKecho 'My name is $NAME'#输出My name is $NAME
字符串重组
#例一MYHOME=/home/DKls $MYHOME/Document#以上命令等同于 ls /home/DK/Document#例二,与上例不同的是变量名后没有特殊符号隔开STRING=Stringecho ${STRING}One#以上命令等同于 echo StringOne#注,echo $STRINGOne 这样写的话系统是无法辨识变量的
set命令和unset命令
set命令可以列出所有变量,而unset后跟变量名会卸载该变量set | grep STRING #输出NAME='String'unset STRING #该变量被卸载
二、位置变量和特殊变量
位置变量和特殊变量都是Shell脚本固有的变量
位置变量
- $0 脚本名称- $N 参数N
特殊变量
$# 表示变量的个数,常用于循环$@ 当前命令行所有参数。置于双引号中,表示个别参数$* 当前命令行所有参数。置于双引号中,表示将命令行所有参数当初一个单独参数$-(连字号) 在引用数给予Shell的选项$? 表示上一个命令退出的状态$$ 表示当前进程编号$0 表示当前程序名称$! 表示最近一个后台命令的进程编号$HOME 表示当前用户根目录$IFS 表示内部的字段分隔符$LANG 当前locale默认名称$PATH 环境变量$PPID 父进程编号$PWD 当前工作目录#-------------------------------------“$?”的参考值0 成功退出>0 退出失败1-125 命令退出失败,失败返回的相关值由程序定义(譬如,程序内退出只执行 exit 2,则返回为2)126 命令找到了,但无法执行127 命令找不到>128 命令因受到信号而死亡
参考资料:
http://www.cnblogs.com/rond/p/3543367.html
阅读全文
0 0
- Shell变量
- Shell变量
- shell 变量
- Shell 变量
- Shell变量
- shell变量
- shell变量
- shell 变量
- Shell ”变量“
- Shell变量
- SHELL 变量
- shell变量
- shell变量 ***
- shell变量
- shell 变量
- 【shell】变量
- shell 变量
- shell变量
- 排列
- hdu1114Piggy-bank(完全背包)
- Hadoop- Writable, WritableCompareable, WritableComparator
- <基础原理进阶>机器学习算法python实现【4】--文本分析之支持向量机SVM【上】
- Java实现“前世今生”测试
- Shell变量
- 【数据库设计】范式基础 第一范式、第二范式、第三范式、BC范式
- 数据结构实验之链表七:单链表中重复元素的删除
- Rust : codewars的Sum of Pairs
- 多线程
- CF 363D. Renting Bikes 贪心+二分
- JavaScript框架之AngularJS学习——作用域与事件(下)
- go语言之map练习之(一):统计字母、数字等Unicode中不同的字符类别出现的次数
- C语言 java 解一元二次方程