在windows下編輯shell腳本注意點
編輯腳本是直接在windows下寫的,並沒有使用特定的編輯器或者其他工具,所以很有可能出現一些莫名其妙的異常,這些錯誤是我們眼睛看不到的,遇到這個情況,例如如下異常或者提示語法錯誤
Java代碼
unexpected end of file
我們可以在linux上使用cat命令,進行清洗數據,
使用工具 cat 和 tr, 方法如下:
bash$ cat -v startqftest.sh |tr -d "^M" > qf.sh
其中 startqftest.sh 是存在問題的腳本, qf.sh是新生成的文件。
sed 's/^M//' test.sh > back.sh^M是Ctrl+v Ctrl+m
解釋一下, cat 可以查看許多不可見這符,
cat -t 顯示TAB 爲 ^I
cat -e 顯示行尾爲 $,
cat -v 顯示不可見字符,用^M表示,所以^M就表示不認識的不可見字符。M 表示Mark,標記的意思。
tr - translate or delete characters
另外,cat 還可以用來調Makefile,
cat -t Makefile 查看命令中有非Tab開頭的,
grep '^ ' Makefile 查找命令行中以空格開頭的行
cat -e Makefile 查看行尾是否正確,防止\後面多一個空格,
grep '\\[ ]$' Makefile 找出以上那樣的行
Java代碼
unexpected end of file
我們可以在linux上使用cat命令,進行清洗數據,
使用工具 cat 和 tr, 方法如下:
bash$ cat -v startqftest.sh |tr -d "^M" > qf.sh
其中 startqftest.sh 是存在問題的腳本, qf.sh是新生成的文件。
sed 's/^M//' test.sh > back.sh^M是Ctrl+v Ctrl+m
解釋一下, cat 可以查看許多不可見這符,
cat -t 顯示TAB 爲 ^I
cat -e 顯示行尾爲 $,
cat -v 顯示不可見字符,用^M表示,所以^M就表示不認識的不可見字符。M 表示Mark,標記的意思。
tr - translate or delete characters
另外,cat 還可以用來調Makefile,
cat -t Makefile 查看命令中有非Tab開頭的,
grep '^ ' Makefile 查找命令行中以空格開頭的行
cat -e Makefile 查看行尾是否正確,防止\後面多一個空格,
grep '\\[ ]$' Makefile 找出以上那樣的行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.