Shell 变量
来源:互联网 发布:dota情书淘宝零食店 编辑:程序博客网 时间:2024/06/08 04:05
${varname:-word}
${varname:=word}
${varname:?word}
${varname:+word}
上面中每个运算符内的冒号(:)都是可选的。如果省略冒号,则将每个定义中的“存在且非NUll”部分改成“存在”。也就是说,运算符仅用于测试变量是否存在。
POSIX 标准化额外的运算符,用来执行模式匹配与删除变量值里的文本。新的模式匹配运算符,通常是用来切分路径名称的组成部分。例如目录前缀与文件名后缀。
path=/home/tolstoy/mem/long.file.name
${variable#pattern} 如果模式匹配于变量值的开头处,删除匹配的最短部分,并返回剩下的部分。
e.g.: ${path#/*/} 结果: tolstoy/mem/long.file.name
${variable##pattern} 如果模式匹配于变量值的开头处,则删除匹配的最长部分,并返回剩下的部分。
${path##/*/} 结果:long.file.name
${variable%pattern} 如果模式匹配于变量值的结尾处,则删除匹配的最短部分,并返回剩下的部分。
${path%.*} 结果: /home/tolstoy/mem/long.file
${variable%%pattern} 如果模式匹配于变量的结尾处,则删除匹配的最长部分,并返回剩下部分。
${path%%.*} 结果: /home/tolstoy/mem/long
匹配模式:
/*/: 匹配任何位于两个斜杠之间的元素;
.* : 匹配点号之后接着的任何元素;
POSIX标准化字符串长度运算符:
${#variable} 返回$variable值里的字符长度.
位置参数:
positional parameter : 指的是shell 脚本的命令行参数; 同时也表示在shell函数内的函数参数。
他们的名称是以单个的整数来命名。
出于历史原因,当这个整数大于9时,就应该以花括号({}) 括起来:
特殊的“变量”: 提供了对传递参数的总数的访问,以及一次对所有参数的访问:
$#
提供传递到shell脚本或函数的参数总数。
当你是为了处理选项和参数而建立循环时,他会很有用。
while [ $# != 0 ]以shift逐渐减少$#,循环将会终止
do
case $1 in处理第一个参数
...
esac
shift移开第一个参数
done
$*,$@
一次表示所有的命令行参数。这两个参数可用来把命令行参数传递给脚本或函数所执行的程序。
“$*"
将所有命令行参数视为单个字符串。等同于“$1 $2 .."。$IFS 的第一个字符用来作为分割符,以分割不同的值 来建立字符串。举例:
printf "The arguments were %s\n" "$*"
"$@"
将所有命令行参数视为单独的个体,也就是单独字符串。等同于 “$1" "$2" ...
这是将参数传递给其他程序的最佳方式,因为它会保留所有内嵌在每个参数里的任何空白。
lpr "$@" 显示每一个文件
- Shell变量
- Shell变量
- shell 变量
- Shell 变量
- Shell变量
- shell变量
- shell变量
- shell 变量
- Shell ”变量“
- Shell变量
- SHELL 变量
- shell变量
- shell变量 ***
- shell变量
- shell 变量
- 【shell】变量
- shell 变量
- shell变量
- Log 之Logback配置文件
- PHP原理、源码1
- php的生命周期:SAPI
- CSS往九宫格中填写9个数字,鼠标悬浮到某一个数字时,数字变色
- vncserver 配置
- Shell 变量
- Shell -退出状态
- shell --if语句--test用法
- Sed
- 集合
- ssh 一些用法
- REST学习
- 解决 PHP Fatal error: Call-time pass-by-reference has been removed【转】
- 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!【转】