首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ash:-c:未知操作数

ash:-c:未知操作数
EN

Stack Overflow用户
提问于 2021-07-15 20:13:59
回答 1查看 103关注 0票数 0

我正在尝试运行一个ash脚本,它不断地检查文件中有多少个字符,如果它至少达到170个字符,或者如果已经过了5秒,就执行一些代码。为此,我想调用wc -c,但是它一直告诉我它有一个未知的操作数。

代码:

代码语言:javascript
复制
#!/bin/ash
while true; do
secs=5
endTime=$(( $(date +%s) + secs ))
while [ /usr/bin/wc -c < "/tmp/regfile_2" -gt 170 ] || [ $(date +%s) -lt $endTime ]; do

#more code

它的输出是ash: -c: unknown operand

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-15 20:30:59

您需要检查wc的输出是否满足特定条件。为此,您需要实际执行wc,就像您已经使用date检查其输出一样。

代码语言:javascript
复制
while [ $(wc -c < "/tmp/regfile_2") -gt 170 ] ||
      [ $(date +%s) -lt $endTime ]; do
    # ...stuff

请注意wc命令周围的$(command substitution)

从提出的重复Checking the success of a command in a bash if [ .. ] statement的答案中可以看出,您当前的命令基本上是检查静态字符串/usr/bin/wc是否是非空的;该字符串后面的-c确实是意外的,并且语法无效。

(不清楚为什么要硬编码wc的路径;在运行此脚本之前,可能只需确保您的PATH是正确的。在某些情况下,您确实希望硬编码路径,但我猜这不是其中之一;如果是,您可能也应该将路径硬编码到date。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68393622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档