我正在嘗試將檔案夾大小與大小限制進行比較。當我嘗試運行腳本時,它給了我錯誤“預期的整數運算式”。
limit=200
foldersize=$(du /home/user1/testfolder)
if [ "$foldersize" -le "limit" ];
then
echo "Folder size is small"
else
echo "Folder size is big"
fi
uj5u.com熱心網友回復:
大小需要read來自du < <(command)流,使用制表符和換行符作為欄位分隔符并且沒有記錄分隔符,因為來自的輸出dc包含要作為單個記錄讀取的多行。
以下是來自 的輸出示例du --bytes --summarize --total /home/user1/testfolder:
4954626 /home/user1/testfolder
4954626 total
您的代碼已修改:
#!/usr/bin/env bash
declare -i limit=200000
declare -- test_folder=/home/user1/testfolder
declare -i folder_size
IFS=$' \t\n' read -r -d '' _ _ folder_size _ < <(
du --bytes --summarize --total "$test_folder"
)
if [[ "$folder_size" -le "$limit" ]];
then
printf 'Folder size is small\n'
else
printf 'Folder size is big\n'
fi
uj5u.com熱心網友回復:
也許是這樣的:
limit=200
folder_size=$(du ~user1/testfolder|cut -d ' ' -f 1)
if (( folder_size <= limit ))
then
echo Folder size is small
else
echo Folder size is big
fi
或者,沒有變數,
if (( $(du ~user1/testfolder|cut -d ' ' -f 1) <= 200 ))
then
...
else
...
fi
uj5u.com熱心網友回復:
做這個:
du -s /home/user1/testfolder |cut -f1
代替 :
du /home/user1/testfolder
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436279.html
