linux shell学习:变量和运算符

2.环境变量

$HOME/.bash_profile 用户的(/etc/profile多有用户的)

export 变量名=值

env 查看环境变量 或者直接输入 export

readonly同本地变量

3.变量替换

echo ${变量名} 或者echo $变量名    输出变量值

${变量名:?value}如果未设置变量,显示用户定义错误信息value (用于查询是否定义了变量)

${变量名:+value}如果设置了,显示value,否则为空

${变量名:-value}如果未设置,显示value

${变量名:=value}如果未设置,设置其值,并显示

4.变量清楚

unset 变量名

5.位置变量

$0-$9共10个

6。标准变量

即系统环境变量

/etc/profile中定义

 EXINIT

HOME

IFS (分隔类型 :)

LOGNAME

MAIL

MAILCHECK

MAILPATH

TERM (终端类型)

PATH (可执行文件寻找到路径)

PS1 ='[\u@\h \W]\$ '(目录提示符~)

PS2 ='> ' (一行上运行多个命令时用到)

PWD

SHELL

MANPATH  man 的目录

TERMINFO

例子 :set | grep “MAIL”

7.特殊变量

$#(传递到脚本的参数个数)

$*(以一个点位字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数不可超过9个))

$$(脚本运行的当前进程ID号)

$!(后台运行的最后一个进程的进程ID号)

$@(传递到脚本的参数里表,但是使用时加引号,并在引号中返回每个参数)

$-(显示shell使用的当前选项,与set命令功能相同)

$?(显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)

8影响变量的命令

declare

设置或显示变量

-f只显示函数名

-r创建只读变量(declare和typeset)

-x创建转出变量

-i创建整数变量

使用+代替-,可以颠倒选项含义

export

用于创建传给shell的变量

--表示选项结束,所有后续参数都是实参

-f表明在“名-值对中东名字是函数名

-n把全局变量转换成局部变量。换句话说,命令的变量不再传给shell

-p显示全局变量列表

 readonly

用于显示或设置只读变量

--表示选项结束

-f创建只读变量

set

设置或重设各种shell

shift [n]

用于移动位置变量,调整位置变量,使$3的值赋给$2,$2的值赋给$1

typeset

用于显示或设置变量

是declare的同义词

unset

用于取消变量定义

--表示选项结束

-f表示删除只读变量,但不能取消从shell环境中删除指定的变量和函数

如PATH,PS1PPID,UID,EUID等的设置

2。双引号

可饮用除了字符$,`,\外的任何字符或字符串

3.单引号

与双引号类似,不同的是shell会忽略任何引用值,换句话说,如果屏蔽了其特殊含义,会将引号里的所有字符,包括引号都作为一个字符串

4.反引号

用于设置系统命令的输出到变量。shell将反引号中的内容作为一个系统命令,并执行其内容

5.反斜杠

如果一个字符有特殊含义,反斜杠防止shell误解其含义,即屏蔽其特殊含义

下述字符包含特殊含义 $ * + ^ & ' " | ?

三 运算符

~op1 反运算符,0变1,1变0

op1<<op2 左移运算符,op1中的二进制左移op2位,忽略最左端一处的各位,最右端各位补0每做一个,就实现了op1乘以2

op1>>op2 同上,除以2

op1&op2 位与操作

op1^op2 位异或

op1|op2 位或操作

echo $[ 表达式 ]

echo $[ 2^4 ]

||

&&

赋值运算符

=,+=,-=,×=,/=,&=,^=,>>=.............

let $count = $count + $change

let $count += $change

2表达式替换

$[]和$(())

习惯使用前者,所有shell的求值都是用整数完成

前者可以接受不同基数的数字

[base#n]   n表示基数从2到36的热和基数

echo $[ 10#8 +1 ]  结果=9,这里的8表示8进制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值