shell变量及运算

显示变量值的命令
1:set 显示所有的变量(局部变量和全局变量)
2:env 只显示全局变量
3:declare输出所有的变量,函数,整数和已经导出的变量
set -o 显示bash shell所有参数配置信息

自定义环境变量
1:export 变量名 =value
2:变量名 =value ;export 变量名
3:declare - x 变量名 =value

设置登陆提示的方式
1:添加内容到/etc/motd
2:编写echo脚本加入到/etc/profile.d/目录下

显示与取消环境变量
1:echo 和 printf命令打印环境变量
2:env和set显示默认的环境变量
3:unset取消本地变量和环境变量

普通变量定义
变量名=value(双引号单引号或者不加引号)
注意区分

把命令结果作为变量内容赋值
变量名=`ls`
变量名=$(ls)

特殊位置参数变量
$0:获取当前执行脚本的文件名
$n:获取当前执行脚本的第n个参数值(当n大于9是用${n}表示)
$#:获取当前执行脚本后面接的参数总数
$*:获取当前执行脚本传参的所有参数 “$*”将所有参数视为单个字符串“$1 $2 $3 $4”
$@:获取当前执行脚本出参的所有参数 "$@"将所有参数视为独立字符串“$1”“$2”“$3”

dirname 获取脚本的路径
basename 获取脚本的名字

进程特殊状态变量
$?:获取上一个指令的返回值(0成功非0失败)
$$:获取当前执行脚本的进程号(PID)
$!:获取上一个后台工作的进程的进程号(PID)
$_:获取之前执行的脚本的左后一个参数

bash shell内置变量命令
echo -n(不换行) -e(解析转义字符)包括(\n换行\r回车\t制表符tab\b退格\v纵向制表符)
eval
exec:不创建新的子进程的前提下,转去执行指定的命令,指定命令执行完后该进程结束
read:从标准输入读取字符串
shift:shift-Shift positonal parameters
将特殊位置参数左移一个位置;$2=>$1,$#减1,直到减为0
exit:退出程序,可接返回值

变量子串:一下parameter表示变量名
${parameter}:返回变量值
${#parameter}:返回变量内容长度(字符),适用于特殊变量
${parameter:offset}:从offset位置之后提取到结尾
${parameter:offset:length}:从offset位置之后提取长度为length的子串
${parameter#word}:从开头开始删除最短匹配的word子串
${parameter##word}:从开头开始删除最长匹配的word子串
${parameter%word}:从结尾开始删除最短匹配的word子串
${parameter%%word}:从结尾开始删除最长匹配的word子串
${parameter/pattern/string}:用string替换第一个匹配的pattern
${parameter//pattern/string}:用string替换所有匹配的pattern

特殊扩展变量
${parameter:-word}:变量值为空或未赋值,返回word并替代
${parameter:=word}:同上;
${parameter:?word}:为空或未赋值,word为标准错误输出
${parameter:+word}:有值且不为空是用word替换

变量的数值计算
运算符号:
+-:
* / %:
**:
++ --:
! && || :
< <= > =>
== != =
<< >>
~ | & ^
= += -= /= %=

算术运算命令:
(()):整数,效率高
let:类似(())
expr:除去整数运算意外还有很多额外功能
bc:linux下的计算程序
$[]:整数运算
awk:整数和小数运算
daclare:定义变量值和属性,-i参数可以定义整形变量,做运算

posted @ 2018-03-22 08:57  大梦初醒lf  阅读(166)  评论(0)    收藏  举报