‘$’ 符号的用法

博客介绍了 Bash 中变量引用和表达式求值的方法。引用变量可使用 $ 符号,也可用 ${ } 作为变量表达式,还能通过 ${#} 获取变量字符串长度。表达式求值可使用 [ ],与 expr 命令不同,[ ] 用于插值,文中给出了相应示例。

引用变量时,使用 $ 符号直接来进行引用,以及包括循环变量;
[root@localhost ~]# x=100
[root@localhost ~]# echo $x
100

使用 ${ } 作为变量表达式。
[root@localhost ~]# x=100  [root@localhost ~]# echo "x = ${x}xy" x = 100

使用 ${#} 获取变量字符串长度。
[root@localhost etc]# s=hello 
[root@localhost etc]# echo "s.length = ${#s}" 
s.length = 5

表达式求值
使用 [ ] 对 表 达 式 进 行 求 值 , 与 命 令 e x p r 不 同 的 是 :[ ] 用于插值
[root@localhost ~]# echo $[100 + 200]
 300
 [root@localhost ~]# expr 100 + 200
 300
[root@localhost ~]# a=100
 [root@localhost ~]# b=200
 [root@localhost ~]# echo $[ a + b ]
 300

### AWK 命令中 `$` 符号的功能和使用方法 在 `awk` 命令中,`$` 符号用于引用字段变量。具体来说,`$` 后面可以跟数字或字符串,表示当前行中的特定字段[^2]。 #### 1. 引用字段 `awk` 默认以空格或制表符作为分隔符,将每一行的内容分割为多个字段。字段从左到右依次编号为 `$1`, `$2`, `$3`, ..., `$n`。例如: ```bash echo "apple banana cherry" | awk '{print $2}' ``` 上述命令会输出 `banana`,因为 `$2` 表示第二列的值。 #### 2. 引用整行 如果使用 `$0`,则表示整行内容。例如: ```bash echo "apple banana cherry" | awk '{print $0}' ``` 上述命令会输出完整的行内容:`apple banana cherry`[^2]。 #### 3. 自定义分隔符 可以通过 `-F` 参数指定自定义分隔符。例如,以下命令将以 `=` 作为分隔符,并打印第二列的内容: ```bash echo "key=value" | awk -F "=" '{print $2}' ``` 此命令将输出 `value`[^3]。 #### 4. 条件判断中的使用 `$` 符号也可以在条件判断中使用,用于匹配特定字段的值。例如: ```bash echo "apple banana cherry" | awk '$1 == "apple" {print $2}' ``` 此命令会检查第一列是否等于 `apple`,如果是,则输出第二列的值 `banana`。 #### 5. 结合数组使用 `awk` 中的数组下标可以是字符串,字符串需要使用双引号。结合 `$` 符号可以实现更复杂的操作。例如: ```bash awk 'BEGIN{i=0} $1=="#CONTACT"{i++} $1=="NAME"{n[i]=$2} $1=="PHONE"{p[i]=$2} END{for(i in n){if (n[i] && p[i]) printf "%s, %s\n",n[i],p[i]}}' data.txt ``` 在此示例中,`$1` 和 `$2` 分别表示每行的第一列和第二列的内容[^3]。 #### 6. 正则表达式匹配 `$` 符号还可以与正则表达式结合使用。例如,以下命令会匹配包含 `error` 的行,并输出该行的第三列: ```bash awk '/error/ {print $3}' log.txt ``` 此命令会在文件 `log.txt` 中查找包含 `error` 的行,并输出这些行的第三列。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值