我的变量没有被它在 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/