笔记整理之 SHELL 变量
2016-05-23 18:30
405 查看
变量的类型:
1.自定义变量
定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 url1=test.3glong.com
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名 set(所有变量:包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效
示例:
2. 环境变量
定义环境变量: 方法一 export url2=test2.3glong.com
方法二 export url1 将自定义变量转换成环境变量
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效
示例:
3. 位置变量
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
4. 预定义变量
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
$? 上一个命令的返回值 0表示成功
定义或引用变量时注意事项:
" " 弱引用
' ' 强引用
1.自定义变量
定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 url1=test.3glong.com
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名 set(所有变量:包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效
示例:
2. 环境变量
定义环境变量: 方法一 export url2=test2.3glong.com
方法二 export url1 将自定义变量转换成环境变量
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效
示例:
[root@node91 ~]# url1=test.3glong.com #定义自定义变量 [root@node91 ~]# export url2=test2.3glong.com #定义环境变量 [root@node91 ~]# /bin/bash #再开启一个bash进入子shell [root@node91 ~]# pstree init─┬─abrtd ├─acpid ├─anacron ├─atd ├─auditd───{auditd} ├─console-kit-dae───63*[{console-kit-da}] ├─crond ├─cupsd ├─dbus-daemon ├─dhclient ├─hald─┬─hald-runner─┬─hald-addon-acpi │ │ └─hald-addon-inpu │ └─{hald} ├─login───bash ├─master─┬─pickup │ └─qmgr ├─5*[mingetty] ├─rpc.statd ├─rpcbind ├─rsyslogd───3*[{rsyslogd}] ├─sshd───sshd───bash───bash───pstree #确认处于子shell ├─udevd───udevd └─xinetd [root@node91 ~]# echo $url1 #输出自定义变量 #发现什么都没有 [root@node91 ~]# echo $url2 test2.3glong.com #环境变量输出了 [root@node91 ~]# exit #退出当前子shell exit [root@node91 ~]# echo $url1 test.3glong.com #自定义变量只能当前shell使用 [root@node91 ~]# echo $url2 test2.3glong.com [root@node91 ~]# export url1 #转换i自定义变量为环境变量 [root@node91 ~]# /bin/bash [root@node91 ~]# echo $url1 #进入子shell test.3glong.com #子shell也正常了
3. 位置变量
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
[root@node91 ~]# vim test.sh echo "第2个位置参数是$2" echo "第1个位置参数是$1" echo "第4个位置参数是$4" echo "所有参数是: $*" echo "所有参数是: $@" echo "参数的个数是: $#" echo "当前进程的PID是: $$" echo '$1='$1 echo '$2='$2 echo '$3='$3 echo '$*='$* echo '$@='$@ echo '$#='$# echo '$$='$$
4. 预定义变量
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
$? 上一个命令的返回值 0表示成功
定义或引用变量时注意事项:
" " 弱引用
' ' 强引用
[root@node91 ~]# school=emlog [root@node91 ~]# echo "$school blog" emlog blog [root@node91 ~]# echo '$school blog' $school blog
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- shell字符串操作详解
- Shell中删除某些文件外所有文件的3个方法
- Ruby中执行Linux shell命令的六种方法详解
- VB使用shell函数打开外部exe程序的实现方法
- Shell编程的一些知识集合
- Shell中的for和while循环详细总结
- 什么是Shell?Shell脚本基础知识详细介绍
- Shell脚本中引用、调用另一个脚本文件的2种方法
- Shell脚本解压rpm软件包
- Linux Shell 数组建立及使用技巧
- Shell脚本实现复制文件到多台服务器的代码分享
- Shell脚本实现批量替换文件内容
- Shell脚本实现的一个简易Web服务器例子分享
- linux Shell学习笔记第五天