我可以将命令用于/var/log/20140522.device.log中的设备ID。
这是我的命令。
for i in `cat /var/log/20140522.device.log`; do echo ---$i; done
现在我想通过每日cron工作来实现它,但它无法正常工作。
for i in `cat /var/log/`/bin/date +%Y%m%d`.device.log`; do echo ---$i; done
是否可以将猫和日期放在一行?
答案 0 :(得分:2)
需要添加$
字符,如下所示:
for i in `cat "/var/log/$(date +"%Y%m%d").device.log"`
答案 1 :(得分:1)
是;您可以使用command substution在同一行使用cat
和date
。
for file in $(cat /var/log/$(date +'%Y%m%d').device.log); do echo ----$file; done
使用$(…)
表示法使嵌套操作比反向刻度表示法简单得多:
for file in `cat /var/log/\`date +'%Y%m%d'\`.device.log`; do echo ----$file; done
你不必考虑需要反斜杠逃逸的地方。
此外,在Bash中,您可以避免使用cat
:
for file in $(</var/log/$(date +'%Y%m%d').device.log); do echo ----$file; done