簡體   English   中英

ash: -c: 未知操作數

[英]ash: -c: unknown operand

我正在嘗試運行一個 ash 腳本,該腳本不斷檢查文件中有多少個字符,並在達到至少 170 個字符或已過去 5 秒時執行一些代碼。 為此,我想調用wc -c ,但是它一直告訴我它有一個未知的操作數。

編碼:

#!/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

您想檢查wc的輸出是否滿足特定條件。 為此,您需要實際執行wc ,就像您已經使用date來檢查其輸出一樣。

while [ $(wc -c < "/tmp/regfile_2") -gt 170 ] ||
      [ $(date +%s) -lt $endTime ]; do
    # ...stuff

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

正如您在 bash `if [ .. ]` 語句中對建議的重復檢查命令是否成功的回答中所見,您當前的命令基本上檢查靜態字符串/usr/bin/wc是否為非空; 此字符串后面的-c確實出乎意料,並且語法無效。

(不清楚為什么要硬編碼wc的路徑;可能只是在運行此腳本之前確保您的PATH正確。在某些情況下,您確實想對路徑進行硬編碼,但我猜這不是其中之一;如果是的,您可能也應該對date的路徑進行硬編碼。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM