【发布时间】:2016-06-21 21:47:24
【问题描述】:
我有兴趣在 osx 上运行的 bash (version: 3.2.57(1)-release) 中创建一个 while 循环,该循环将运行特定的秒数/分钟数。
示例
例如,我想在 5 秒期间创建 n 个文件,每个文件都有当前日期和时间。
方法
我的循环结构相当基本:
i=$cmd(date %ss)
j=$i + 10
while [ $i -lt $j ]
do
fileName=$cmd(cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c 32)
date > $fileName
i=date %ss
done
问题
当我尝试执行脚本时,出现以下错误:
loop.sh: line 1: syntax error near unexpected token `('
loop.sh: line 1: `i=$cmd(date %ss)'
期望的结果:
-
i计数器反映秒数,循环在 10 秒后停止 - 在当前工作目录中创建以当前日期为唯一内容的随机
*.txt文件
【问题讨论】:
-
先尝试shellcheck.net 清理不需要人工反馈的语法问题
-
@thatotherguy 我尝试了另一个错误,已更新。
-
以下是如何将命令输出分配给变量:
var=$(mycommand)例如var=$(date +%s) -
@Konrad,SO 是一个节奏如此快的论坛,我通常会阅读更多帖子而不是回答,即使我知道答案,核心小组总是发布这么快,我没有机会到。无论如何,虽然我能够为您提供帮助,但我想说的是,我通过您选择获取
fileName的方法学到了一些新东西,并将您的技术添加到我的代码库中。谢谢!
标签: osx bash shell loops datetime