变量
shell script是一种脚本语言,变量的定义是通过
myName=HYB
这样的形式定义的。
当存在空格时,可以通过双引号或单引号将其变为字符串。双引号不进行转义,单引号将内容进行转义为一般字符。\
会进行转义。
执行命令
通过小括号$(command)
或者是`command`
可以执行指令,将执行结果返回。
?为上一个指令返回的值
命令
export
可以显示或增添变量,仅在当前会话中有效。
比如 export PATH=$PATH:/bin/bash
还可以将父进程中的自定义变量传递到子进程中。
export myName
echo
将变量进行输出
echo ${PATH}
unset
删除变量 unset myName
read
通过read可以接收键盘输入,如
read name
即可将键盘输入存入name变量中。
参数-t为限时,-p为提示文字。
declare
可以设置变量。declare [-aixr] variable 。-a为数组,-i为整形,-x为将其变为环境变量,-r将其设为不可改变。
控制符
删除
#为从前开始懒惰的匹配删除
##为从前开始贪婪的匹配删除
echo ${path##/*:}为只保留path的最后一个的删除操作
%为从后开始懒惰的匹配删除
%%为从后开始贪婪的匹配删除
echo ${path%%/*:}为只保留path的最后一个的删除操作
替换
${变量/旧字符串/新字符串}替换第一个匹配项
${变量//旧字符串/新字符串}替换所有匹配项
值的计算
${var-default}通过使用-可以设置变量默认值,变量var不存在时就会将default值赋予变量。
${var:-default}变量为空是也会设置默认值。
正则表达式
bash中的正则表达式好像没有什么与其他语言正则表达式不同的地方。
命令的执行
cmd;cmd可以按顺序从前到后执行命令
&&和||为逻辑运算符,遵循短路原则,对命令返回结果是否正确进行判断,也就是&&要两个都成功执行,||要最起码一个成功执行
管线
|为管线,前面的标准输出会作为下一个指令的标准输入。