我正在寫一個腳本,它在論壇的Web目錄上執行校驗和(md5sum)。通過bash傳遞一個大的變量到diff命令
這是一個bash腳本。想法是對目錄中的所有文件執行校驗和,然後將其與具有校驗和列表的文本文件進行比較。
如果我把它傳遞到一個文本文件中,然後在文本文件和我的已知校驗和列表之間做一個diff命令,但我希望它沒有寫入文本文件,然後必須在腳本的末尾刪除文本文件,因此爲什麼我使用的是可變
下面的腳本失敗,出現錯誤: 在/ usr/bin中/ DIFF:參數列表過長
cd /var/www/html/forum/
VAR1=$(find . -type d \(-name store_sitemap \) -prune -o -type f -exec md5sum {} \; | grep -v "files\|that\|change")
/usr/bin/diff "${VAR1}" "/root/scripts/forum_checkum_original.txt"
如何我可以傳遞我的變量,以便我可以在其上運行diff命令嗎?
編輯:與用戶devnull的幫助(再次感謝你),這裏是完成和工作的腳本:
cd /var/www/html/forum/
MAIL=$(/usr/bin/diff <(find . -type d \(-name store_sitemap \) -prune -o -type f -exec md5sum {} \; | grep -v "files\|that\|change") /root/scripts/forum_checkum_original.txt)
if [[ -n $(/usr/bin/diff <(find . -type d \(-name store_sitemap \) -prune -o -type f -exec md5sum {} \; | grep -v "files that change") /root/scripts/forum_checkum_original.txt) ]]; then
echo "$MAIL" | mail -s "Forum Checksum" [email protected]
else
echo "no files have been changed"
fi
謝謝。那已經很完美了 – rezizter