笔记整理之 SHELL 变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记整理之 SHELL 变量相关的知识,希望对你有一定的参考价值。


变量的类型:

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有效
示例:


[[email protected] ~]# url1=test.3glong.com           #定义自定义变量
[[email protected] ~]# export url2=test2.3glong.com  #定义环境变量
[[email protected] ~]# /bin/bash             #再开启一个bash进入子shell
[[email protected] ~]# 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
[[email protected] ~]# echo $url1           #输出自定义变量
                                                                #发现什么都没有
[[email protected] ~]# echo $url2
test2.3glong.com                                 #环境变量输出了
[[email protected] ~]# exit                          #退出当前子shell
exit
[[email protected] ~]# echo $url1
test.3glong.com                                     #自定义变量只能当前shell使用
[[email protected] ~]# echo $url2
test2.3glong.com
[[email protected] ~]# export url1               #转换i自定义变量为环境变量
[[email protected] ~]# /bin/bash
[[email protected] ~]# echo $url1               #进入子shell
test.3glong.com                                       #子shell也正常了


3. 位置变量
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}

 [[email protected] ~]# vim test.sh
               
echo "第2个位置参数是$2"
echo "第1个位置参数是$1"
echo "第4个位置参数是$4"
echo "所有参数是: $*"
echo "所有参数是: [email protected]"
echo "参数的个数是: $#"
echo "当前进程的PID是: $$"
echo ‘$1=‘$1
echo ‘$2=‘$2
echo ‘$3=‘$3
echo ‘$*=‘$*
echo ‘[email protected]=‘[email protected]
echo ‘$#=‘$#
echo ‘$$=‘$$


4. 预定义变量
   $0    脚本名
   $* 所有的参数
   [email protected] 所有的参数
   $# 参数的个数
   $$ 当前进程的PID
   $!     上一个后台进程的PID
   $? 上一个命令的返回值 0表示成功
定义或引用变量时注意事项:
" "   弱引用
‘ ‘    强引用

[[email protected] ~]# school=emlog
[[email protected] ~]# echo "$school blog"
emlog blog
[[email protected] ~]# echo ‘$school blog‘
$school blog


本文出自 “幽龙博客” 博客,请务必保留此出处http://3glong.blog.51cto.com/11271871/1782248

以上是关于笔记整理之 SHELL 变量的主要内容,如果未能解决你的问题,请参考以下文章

shell编程学习笔记之特殊变量($0$1$2 $? $# $@ $*)

Shell与shellscript学习笔记之三(变量内容的删除替代与替换)

20shell编程之变量

shell编程之运算符

linux(三十)shell脚本基础知识整理

linux(三十一)shell脚本基础知识整理