- 变量直接定义,读取的时候加上符号$,用echo可以输出变量
- 变量赋值采用【=】, 但是【=】两边不能直接加空格,这个对于在c编程中有良好的空格习惯的程序猿一定注意
- 变量内的内容含有空格可用【“”】或者【‘’】
使用双引号特殊字符可保留原有特性 例如:『var="lang is $LANG"』则『echo $var』可得『lang is en_US』
使用单引号则为纯文本 例如:『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』 - 当然可以使用转义字符【\】将特殊符号如【$,\,空格】等变为一般字符
- 在一串指令中,还需要藉由其他的指令提供的信息,可以使用反单引号『`指令`』戒 『$(指令)』。注意,反单引号是tab上面的键,在一串指令中,在 【``】内的指令将会被先执行,而其执行出来的结果将做为外部的输入信息
例如:locate 指令可以列出相关档案名,则【ls -l `locate crontab`】就是一种使用方法 - 规定:通常大写字符的变量为系统默认变量,自己定义的变量尽量用小写
- 若变量需要在其他子程序执行,需要使用export使变量变成环境变量【export name】
主要使用方法是我们可以利用【bash】进入子程序,用【exit】退出子程序 - unset 【已经设定好的变量名】 取消变量设定
- 举例:若我们已经有一个变量name=zhangsan,我想在之后加上yes,有两种方法
name="$name"yes
name=${name}yes 【此种方法较好】 - 变量的特殊使用,如果我们有一个常去的工作目录,那么我们就可以这样设定,如果目录名比较长的情况下
- env【environment】的简写,可以列出所有的环境变量
- man bash 中找到PS1可以找到一些预设的内容,类似这种
我们可以做如下设定,提示符就改变了,这样我们就知道了[james@localhost root]$的意义 - echo $$ 输出shell 的PID
echo $? 上个指令的回传值,一般成功执行返回0,发生错误,回传错误代码 - 读取来自键盘的变量read [-pt] variable 选项与参数:
-p :后面可以接提示字符!
-t :后面可以接等待的『秒数!』 - declare [-aixr] variable 【宣告变量类型】
选项与参数:
-a :将后面名为 variable 的变量定义成为数组 (array) 类型
-i :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
-x :用法与 export 一样,就是将后面的 variable 变成环境变量;
-r :将变量设定成为 readonly 类型,该变量不可被更改内容,也不能 unset - 数组 (array) 变量类型
var[index]=content 意思是说,我有一个数组名为 var ,而这个数组的内容为 var[1]=小明, var[2]=大明 - 与文件系统及程序的限制关系: ulimit
ulimit [-SHacdfltu] [配额] 选项与参数: 【详细信息可查询】
-H :hard limit ,严格的设定,必定不能超过这个设定的数值;
-S :soft limit ,警告的设定,可以超过这个设定值,但是若超过则有警告讯息。 - 变量内容的删除与取代
例如:path=${PATH}
# :符合取代文字的『最短的』那一个;
##:符合取代文字的『最长的』那一个
例如:mail的路径为是 /var/spool/mail/james
echo ${MAIL##/*/} 中的##删除符合条件最长的数据
echo ${MAIL%/*} 删除符合条件最短的数据 - 测试一下是否存在 username 这个变量,若不存在则给予 username为root 【username=${username-root}】
加上『 : 』后若变量内容为空或者是未设定,都能够以后面的内容替换! 【username=${username:-root}】 - history n n为数字,历史命令显示
!number 执行第几条历史命令
!command 执行开头为command的那个指令,比如:!al执行最近的以al开头的命令
shell学习2---变量
最新推荐文章于 2024-08-02 20:42:33 发布