tft每日頭條

 > 科技

 > linux中選擇性執行腳本主動報錯

linux中選擇性執行腳本主動報錯

科技 更新时间:2024-11-23 13:05:18
前言

在windows下的文本,默認換行符是^M$,稱為CR與LF兩個符号;而在linux中是以$結尾,即LF結尾。因此如果在windows下編輯的shell腳本如果沒有選對正确的格式就會出現很詭異的現象,甚至不能運行。

linux中選擇性執行腳本主動報錯(linux腳本-文件格式導緻腳本異常)1


查看文件類型

可以使用file命令進行查看:

file 1.sh

1.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators

可以看到,腳本是以CRLF換行的。

如果直接執行就會發現,無法找到解釋器,發現解釋器的後面還加了一個^M:

./1.sh

bash: ./1.sh: /bin/bash^M: 解釋器錯誤: 沒有那個文件或目錄

直接使用bash -x查看執行過程:

bash -x 1.sh

a=$'linux123124124124\r'

echo $'linux123124124124\rabcdef\r'

abcdef23124124124

這裡可以看到\r的字符導緻輸出的結果異常的。

linux中選擇性執行腳本主動報錯(linux腳本-文件格式導緻腳本異常)2

觸摸屏


解決辦法

1、使用vim轉換格式

vim 1.sh

在命令模式先輸入

:set ff=unix

或者

:set fileformat=unix

2、使用dos2unix命令

dos2unix 1.sh

3、使用sed替換掉\r$

sed -i 's/\r$//' 1.sh

linux中選擇性執行腳本主動報錯(linux腳本-文件格式導緻腳本異常)3

藍色發光新技術在深空

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved