我正在编写 shell 脚本并使用 Window 命令行执行它们。
我正在学习如何编写 shell 脚本...就像我已经进入第一章一半一样,如果这告诉你我是多么的新手。
当我date
单独使用该命令时,它会生成日期。
如果我使用
echo -n `"I am testing: " date`
它产生:
I am testing: date
我究竟做错了什么?
我希望它产生:
I am testing: Sun June 11 11:30:47
建议?
答案1
echo -n `"I am testing: " date`
将尝试使用作为参数运行I am testing:
命令date
,收集其输出并将该主题作为额外参数传递给 split+glob echo
。我希望这会给您带来错误,因为您的系统不太可能有该名称的命令。
可能你想要:
printf 'I am testing: %s' "$(date)"
我们收集传递给的输出date
(使用现代$(...)
形式的命令替换而不是已弃用的命令替换) (应该使用它来代替,特别是如果您需要那些非标准选项,例如)。`...`
printf
echo
-n
或者用bash
谁printf
可以格式化日期:
printf 'I am testing: %(%c)T' -1
(-1
意思是现在。在 中ksh93
,它%(...)T
来自哪里,您可以使用now
它来代替)。
如果您不想省略行分隔符(这-n
在某些echo
实现中是这样的),您可以使用:
date '+I am testing: %c'
我们在哪里告诉date
我们希望以哪种格式输出日期。
替换%c
为%a %B %d %T
上面的内容以获得Sun June 11 11:30:47
您在问题中显示的格式。