linux - 在 shell 脚本中使用字符串中的变量

标签 linux bash shell

我的变量没有被它在 shell 脚本中的值替换:

#!/bin/bash
read -p "Enter uuid "  uuid
read -p "Enter date in format yyyymmdd: " date

echo $uuid
echo $date

a=`zgrep 'Queue for uuid $uuid' reader_$date.gz`    
b=`zgrep 'Queue for uuid 23fef66b-fcf0-4a71-8ca3-a0761dffc473' reader_$date.gz`

echo $a
echo $b

输出:

Enter uuid 23fef66b-fcf0-4a71-8ca3-a0761dffc473                                         
Enter date in format yyyymmdd: 20180323
23fef66b-fcf0-4a71-8ca3-a0761dffc473
20180323

[2018-03-23 17:27:10,535: INFO/Worker-1 None None tasks/push_to_rabbit] Queue for uuid 23fef66b-fcf0-4a71-8ca3-a0761dffc473 is 35.154.190.22_2_k_event

为什么变量 a 是空的?

最佳答案

在应该扩展参数的地方需要双引号,而不是单引号。

错误的引用:

u=23; d=3; a=$(zgrep 'Mar $u 23' /var/log/syslog.$d.gz); echo $a

右引文:

u=23; d=3; a=$(zgrep "Mar $u 23" /var/log/syslog.$d.gz); echo $a
Mar 23 23:00:01 tux201t CRON[25808]: (stefan) CMD ....

关于linux - 在 shell 脚本中使用字符串中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496200/

相关文章:

linux - Bash 静默错误处理

regex - 如何在 Linux 命令行中 grep 以双正斜杠开头的行?

Python加入日期和文件名

bash - 为什么 bash 忽略序列大括号扩展中的 '-'?

bash - 杀死文件夹中的所有pid文件

python-3.x - 如何对 django 项目进行 cythonize?

shell - 如何更改AWS Cognito用户的密码?

c - 当我们从不同的上下文调用 msync 时,文件内容不持久

linux - 如何实现diff功能?

linux - Bash:从脚本中以用户身份获取文件