shell特殊符号及变量

1.变量定义
shell变量名称的开头是一个字母或下划线符号,后面可接任意长度字母、数字或下划线符号。
变量赋值的方式为:变量名称=值,中间无空格,单行可多次赋值。如val0=abc val1=kjh
如果要获得变量的值,需在变量名称前加$字符,如val2=$val1,shell会对$(...)里的算术表达式进行计算
当所赋予的值包含空格时,需加引号,如val3=“abc def hji”
要将多个变量连接起来时,要加引号,如val4=“$val0 $val1 $val2 $val3”

2.内置的shell变量

#目前进程的参数个数
@传递给当前进程的命令行参数。置于双引号内,会展开为个别的参数
*当前进程的命令行参数。置于双引号内,会展开为一单独参数
-在引用是给予shell的选项
前一命令的退出状态
$shell进程的进程编号
0shell程序的名称
最后一个后台命令的进程编号
  
HOME根目录
IFS内部的字段分割器
LANG当前locale的默认名称
LC_ALL当前locale的名称
PATH命令的查找路径
PPID 父进程的进程编号
PS1 主要的命令提示字符串。默认为“$”
PS2行继续的提示字符串。默认为“>”
PS4以set -x设置的执行跟踪的提示字符串。默认为“+”
PWD当前工作目

3.命令行参数
第一个参数表示为$1,第二个$2,当大于10时,加{},如第十个${10}
$# 提供传递到shell脚本或函数的参数总数
$*,$@ 一次表示所有的命令行参数
"$*" 将所有参数视为单个字符串="$1 $2..."
"$@" 将所有参数视为单独的个体="$1""$2"...

4.变量模式匹配
${varname:-word} 如果varname存在且非null,则返回其值;否则返回word
${varname:=word} 如果varname存在且非null,则返回它的值;否则设置它为word,并返回其值
${varname:?message} 如果varname存在且非null,则返回它的值;否则显示varname:message,并退出命令或脚本
${varname:+word} 如果varname存在且非null,则返回word;否则返回null
(:)冒号可省略,如果省略,则“存在且非null”改为“存在”
${varname#pattern} 如果模式匹配于变量值的开头,则删除匹配的最短部分,并返回剩下的部分
${varname##pattern} 如果模式匹配于变量值的开头,则删除匹配的最长部分,并返回剩下的部分
${varname%pattern} 如果模式匹配于变量值的结尾,则删除匹配的最短部分,并返回剩下的部分
${varname%%pattern} 如果模式匹配于变量值的结尾,则删除匹配的最长部分,并返回剩下的部分

5.特殊符号

|--重定向运算符;<、>、>>、| 、<>
|--》set -C
| 执行上面的命令可打开shell所谓的禁止覆盖选项,如>重定向遇到目标文件存在时,就会失败
|--》以<>打开一个文件作为输入输出
| 一般来说,<以只读模式打开文件,>只写,<>则是可读可写,如program<>file
|--》文件描述符
| 0、1、2对应标准输入输出及出错
|--》exec:在当前shell中启动新程序,不过此为单向操作,控制权不肯能够回到脚本,唯一例外是新程序无法调用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值