您的位置:首页 > 运维架构 > Shell

shell入门之变量

2016-11-20 16:32 239 查看
1,变量建立

变量名称不能以数字开头

var=5

var=hello

可以直接赋值数字和字符串,本质上其实都是字符串,declare -i var变为整数

添加一个变量set 也可省略,shell变量,只是当前shell和子shell可继承

添加一个环境变量export var,declare -x var,删除一个环境变量unset var,删除后是空,显示所有环境变量env,export -p

例如

PATH是解读命令时候去哪里寻找

SHELL是当前解释器的目录,/bin/bash说明是bash shell

USER,UID,HOME,IFS,PWD,OLDPWD,PS1,PS2,PPID

2,变量的取值

加符号$var就可以取到变量的值,类似c语言,*p取p指向地址处的值,此处省略了大括号${var},大括号可以避免上下文的连接歧义

awk中print内建变量,不需要加$

3,变量的运算

默认都是字符串,除非let “var+=2” 

 var1=((var+5)) ;var2=[var+5];这样是不会成功的,符号只是一种运算,变量赋值要的是结果,要加$

 var1=$((var+5)) ;var2=$[var+5]

以echo为例,echo hello ,shell程序主要是命令+选项+参数

命令和选项是通过man可以查出,参数分为单独引用,单引号,双引号

区别如下:

echo \m ;echo \\m;echo \\\m;

echo '\m';echo '\\m';echo '\\\m'

echo "\m";echo "\\m";echo "\\\m"

双引号:除 $ ` \之外,直接引用,保留空格,保留换行

单引号:所见即所得,所有字符,但是不能屏蔽自己,单引号

反引号:系统命令执行的结果$()

反斜线:屏蔽下一个特殊字符为普通字符

参数传递过程其实分为两部分

1参数本身处理:双引号,单引号,括号,反斜线,单独引用

2参数解读处理:例如grep接到\b,加正则表达式选项为整数,不加正则表达式\b本身

echo -e;grep -P把\t识别为tab
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: