溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一個<<-EOF引發(fā)的血案

發(fā)布時間:2020-06-06 03:57:48 來源:網(wǎng)絡 閱讀:192 作者:a_jkou 欄目:系統(tǒng)運維

lesson learnt:
改之前先備份,復制舊的注釋掉再加新的。
基礎不牢,地動山搖。

故事是這樣的,從網(wǎng)上撥拉下來一個定時發(fā)郵件的shell,用到了here document寫正文。新功能是再加個郵件列表到cc里去。沒想到這么小個改動竟然翻車了。出來混遲早要還的。原來的腳本長這樣( 應該差不多長這樣,我要是記得就回滾了。
/bin/mail -s "${subject}" "${receiver}" <<-EOF
內(nèi)容手動馬賽克
EOF
加cc的時候手欠把<<-EOF改了,然后腳本就需要交互了
/bin/mail -s "${subject}" "${receiver}" -c "${cc}"
內(nèi)容手動馬賽克
<<-EOF
試著把-c參數(shù)改個位置
/bin/mail -s "${subject}" -c "${cc}" "${receiver}"
內(nèi)容手動馬賽克
<<-EOF
然并軟
以為是<<-EOF換行了,刪了再寫還是那個位置,是terminal切割了并沒有回車字符。
OK, fine,let's 度娘。大家原來都是這么寫的
/bin/echo "內(nèi)容手動馬賽克" | /bin/mail -s "${subject}" -c "${cc}" "${receiver}"
好丑,我先用為敬。

做為一個完美主義不能忍,趁著夜深人靜沒有報警換bing搜一搜。換了幾個姿勢,哦不關(guān)鍵詞,bing跟度娘差不多蠢,只知道宅男不懂攻城師。

來自力更生,繼續(xù)換姿勢,不要問我改了什么,辣眼睛

“我好像為了裝逼用vi改的,自己都不記得改了什么”

jiaoben.sh: line 9: /bin/mail: Permission denied

撲街

? ~ ./jiaoben.sh
./jiaoben.sh: line 9: syntax error near unexpected token &lt;&lt;-'<br/>./jiaoben.sh: line 9:/bin/mail -s "${subject}" -c "${cc}" "${receiver}" | cat >> <<-EOF'

果斷上ladder用我大谷哥。
歪國人的月亮就是比較圓,各種姿勢真貼心。
https://www.cyberciti.biz/faq/linux-unix-bash-ksh-csh-sendingfiles-mail-attachments/
Tip #2: Writing Mail Body Using Here documents

The here documents (redirection) tells the shell to read input from the current source (HERE) until a line containg only word (HERE) is seen:

#!/bin/bash
...
....
mail -s "Disk Failed" vivek@nixcraft.net.in<<EOF
NAS server [ mounted at $(hostname) ] is running out of disk space!!!
Current allocation ${_SPACE} @ $(date)
EOF
...

什么echo + EOF cat + EOF,我個智障。

PS,中間還有個插曲,改成echo后內(nèi)容不能回車換行。我竟然無恥得百度了才知道要echo -e。保持對shell的敬畏,什么了解熟悉都不要隨便亂說。

PPS,我真是折騰的命,什么東西我都能給玩壞。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI