Linux
為什麼這個 bash 腳本不起作用?
我正在製作一個 bash 腳本來檢查磁碟上的可用空間:
if [ check_space -gt "85" ]; then echo "removing" else echo "not removing" fi
check_space
返回一個數字52
,check_space
函式是:check_space() { df /dev/sda1 | tail -1 | awk '{print $5}' | sed 's/%//'; }
它正在返回
./backup.sh: line 63: [: check_space: a full expression was expected
(我是從西班牙語翻譯過來的,所以可能不是準確的翻譯)。有什麼問題?
您的情況實際上並未呼叫 check_space,您需要類似以下內容:
if [ `check_space` -gt "85" ]; then
這是你可以做到的…
#!/bin/bash CHECK_SPACE=`df /dev/sda1 | tail -1 | awk '{print $5}' | sed 's/%//'`; if [ $CHECK_SPACE -gt "85" ]; then echo "removing" else echo "not removing" fi
我不得不拿出我的 bash 備忘單。bash 中的函式不能返回值,只能返回退出狀態。