首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在shell-script中使用字符串内的变量

在shell-script中使用字符串内的变量
EN

Stack Overflow用户
提问于 2018-03-27 00:23:55
回答 2查看 1.6K关注 0票数 0

我的变量没有被shell-script中的值替换:

代码语言:javascript
复制
#!/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

输出:

代码语言:javascript
复制
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为空?

EN

回答 2

Stack Overflow用户

发布于 2018-03-27 01:00:35

在应该展开参数的位置需要双引号,而不是单引号。

引用错误:

代码语言:javascript
复制
u=23; d=3; a=$(zgrep 'Mar $u 23' /var/log/syslog.$d.gz); echo $a

右引语:

代码语言:javascript
复制
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 ....
票数 2
EN

Stack Overflow用户

发布于 2018-03-27 01:05:33

将单引号替换为双引号,以允许bash变量替换。

从…

代码语言:javascript
复制
a=`zgrep 'Queue for uuid $uuid' reader_$date.gz`

代码语言:javascript
复制
a=`zgrep "Queue for uuid $uuid" reader_$date.gz`
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49496200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档