您的当前位置:首页正文

【SRE笔记 2022.8.28 linux变量】

2024-11-07 来源:个人技术集锦

$OLDPWD变量

  • 该变量记忆了上一次的路径。
[root@aaa /]# pwd
/
[root@aaa /]# cd /etc/
[root@aaa etc]# echo $OLDPWD   #该变量记录上一次所在目录,cd - 实际是在 cd $OLDPWD
/
[root@aaa etc]# cd -
/
[root@aaa /]# pwd
/

通配符与特殊符号

  • 作用于文件名的组配符
  • 代表特殊含义的一些符号
  • bash命令行操作的时候
符号作用
*匹配任意(大于等于0个)字符或字符串,包括空字符
匹配任意1个字符串,有且只有1个字符
  • 字符合集 [abcd],匹配a b c d 中任意1个字符,也可是其他任意不连续字符,整体代表1个字符。
    [!abcd],取反 !也可用^替代
  • 字符合集[a-z]匹配其中任意1个字符,整体代表1个字符,同理[1-9]也一样

单引号

  • 所见即所得,即输出单引号内容时会将单引号的所有内容原样输出,称之强引用
[root@aaa ~]# echo 'date'
date

双引号

  • 如果内容中有命令,变量,特殊转义符等,会把变量、命令、特殊转义符解析出结果,输出最终内容,称之为弱引用
[root@aaa ~]# echo "date"  # 语法错误
date
[root@aaa ~]# echo "$(date)"  # 语法正确
Sun Aug 28 18:16:58 CST 2022
[root@aaa ~]# echo $(date)    # 语法正确
Sun Aug 28 18:18:41 CST 2022

无引号

  • 赋值时,如果变量内容有空格会使得赋值不完整,而在输出内容时,也会将含有空格的字符串视为一个整体输出,如果内容中有命令(要反引下)、变量等、会先把变量 、命令解析分析出结果,然后输出最终内容;如果字符串带有空格等特殊字符,则有可能无法完整输出,因此需要改加双引号,连续的字符、数字、路径等可不加任何引号赋值和输出,无引号的情况最好用双引号替代,特别是变量赋值时。

反引号

  • 一般用于引用命令,引号中内容会被执行,相当于$(),赋值和输出都要将命令用反引号。

其他特殊符号

  • ; 表示命令的结束,或者一个命令的分隔符。
  • (#) root用户提示符;注释掉内容;也可能是分隔符(vim中替代/,也可用@)
  • | 表示管道,输出数据流(文件内容);grep -E “内容A|内容B” 或者的意思,过滤多个字符串
  • $ 普通用户提示符;字符串前加$代表字符串内容
[root@aaa ~]# echo $LANG
en_US.UTF-8   # 语言字符集设置变量
  • \ 逃脱符或转义符,将有特殊含义的字符(通配符或正则表达式)还原成字符本意。如?只代表?,不代表任意1个字符。也可在命令行实现换行输入的作用,实际上还是同一行。
  • {} 生成序列
  • || or的意思,或者。前面错误,后面输出;前面正确,后面输出。
  • && 并且 前面正确,后面才输出。

seq 序列

  • 添加步长
[root@aaa ~]# seq 1 2 5
1
3
5
[root@aaa ~]# seq 6 1 1
[root@aaa ~]# seq 6 -1 1  # 负步长
6
5
4
3
2
1

echo & xargs

  • echo 默认横打,| xargs -n 1即竖打
  • seq 默认竖打, -s “ ” 分隔符指定为空格则为横打

其他

  • $? 命令可查询上次命令的执行结果,0为成功,非0为失败。
[root@aaa ~]# echo $?
0
[root@aaa ~]# pwa
-bash: pwa: command not found
[root@aaa ~]# echo $?
127
显示全文