欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux Shell腳本syntax error: unexpected end of file原因及解決

 更新時間:2024年03月22日 10:14:04   作者:jwensh  
這篇文章主要介紹了Linux Shell腳本syntax error: unexpected end of file原因及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

腳本調(diào)試老不好,多半是要廢了......

背景

項目需要部署新的后臺服務,于是開始編寫shell部署腳本,然后把寫好的腳本放到服務器上,發(fā)現(xiàn)不能執(zhí)行一直報錯。

但是當我vim查看腳本,并沒有第51行,反復執(zhí)行總是提示錯誤,內(nèi)心是拒絕的。

原因

最后發(fā)現(xiàn)我的腳本是在window環(huán)境下編寫的,然后傳到linux服務器上的,這時候問題來了,doc下的文本內(nèi)容格式和unix下的格式有所不同,比如dos文件傳輸?shù)絬nix系統(tǒng)時,會在每行的結(jié)尾多一個^M結(jié)束符。

(我的就是這個原因)

解決

vim serverDeploy.sh
:set fileformat=unix
:wq

或者

dos2unix命令將dos文件轉(zhuǎn)換為unix格式(dos2unix需要安裝:yum -y install dos2unix)

dos2unix serverDeploy.sh

重新執(zhí)行腳本就行可以了

sh -x serverDeploy.sh 

建議:

1.最好在linux下編寫shell腳本,如果喜歡window下的ide,記得上傳腳本到服務器時,記得修改腳本的格式,和執(zhí)行權(quán)限;

2.可以使用 sh -n serverDeploy.sh 命令來檢查腳本的語法;

3.注意shell的中的變量引用,如:

[ -z $VAR ]

字符串變量在使用時請養(yǎng)成加雙引號的習慣 "$VAR",這樣無論是字符串為空或是字符串中含有空格,都不會有任何問題。

改為:

if [ -z "$PASODSPATH" ]; then

或者:

if [ -z "$PASODSPATH" ]
then

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論