linux - 无法在bash中输入日期变量
问题描述
我有一个目录 /user/reports 下有许多文件,其中一个是:
report.active_user.30092018.77325.csv
我需要从上面的文件名中输出日期后的数字,即77325 。
我创建了以下命令以从文件名中查找值:
ls /user/reports | awk -F. '/report.active_user.30092018/ {print $(NF-1)}'
现在,我希望将当前日期作为变量传递给上面的命令并获得结果:
ls /user/reports | awk -F. '/report.active_user.$(date +'%d%m%Y')/ {print $(NF-1)}'
但没有得到所需的输出。
尝试过 bash 脚本:
#!/usr/bin/env bash
_date=`date +%d%m%Y`
active=$(ls /user/reports | awk -F. '/report.active_user.${_date}/ {print $(NF-1)}')
echo $active
但仍然输出为空白。
请帮助正确的语法。
解决方案
正如@cyrus 所说,您必须在变量赋值中使用双引号,因为简单引号仅用于字符串而不用于包含变量。
基本用例
number=10
string='I m sentence with or wihtout var $number'
echo $string
正确的用例
number=10
string_with_number="I m sentence with var $number"
echo $string_with_number
您可以使用简单的引号,但不能使用所有字符串
number=10
string_with_number='I m sentence with var '$number
echo $string_with_number
推荐阅读
- symfony - 如何在 Nelmio API DOC vs 3 中定义关联数组?
- python - RobotFramework Selenium:如何从多选下拉列表中选择多个选项?
- javascript - 使用@input将对象数组从角度模板传递到另一个组件
- android - CardView里面的LinearLayout动态添加组件,只有先添加
- javascript - 如何在承诺中不改变我的数组顺序
- python - 为在单个窗口中显示的框架放置一个滚动条
- ruby - 如何对给定的数组列表进行排序?
- php - 向 lambda 添加参数
- ios - 我的应用程序在 uikit 崩溃,只发生在 iPhone X 及以上异常名称 NSInternalInconsistencyException
- r - 列表和数据框组合成一个 json