[英]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.