Linux が sh スクリプトを実行できない場合の対処方法

WBOY
リリース: 2022-07-20 14:53:12
オリジナル
5124 人が閲覧しました

解決策は 3 つあります: 1. "dos2unix filename" コマンドを使用して、指定されたファイルを Unix 形式に直接変換します; 2. sed コマンドを使用して、終了文字を Unix 形式に直接置き換えます。 "sed - i "s/\r//" filename" または "sed -i "s/^M//" filename"; 3. vi を使用してファイルを開いた後、"set ff=unix" を使用してファイルを unix にコピーし、「:wq」を使用して保存します。

Linux が sh スクリプトを実行できない場合の対処方法

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux で sh スクリプトを実行できない場合はどうすればよいですか?

シェル スクリプトの実行時にこのようなエラーが表示される主な理由は、シェル スクリプト ファイルが dos 形式であるためです。つまり、各行の終わりは \r\n で識別されます。Unix 形式ファイルの行の終わりは \n でマークされます。

スクリプト ファイルが dos 形式であるか unix 形式であるかを確認するいくつかの方法。

(1) cat -A filename 表示結果から dos 形式のファイル行末は ^M、uni x 形式のファイル行末は 、ファイル行末尾は ^M であることが判断できます。 unix 形式では、unix 形式 ファイル行は で終わります。

(2) od -t x1 ファイル名 出力内容に 0d 0a という文字があればそのファイルは dos 形式、0a だけがある場合は unix 形式です。

(3) vi ファイル名でファイルを開いて set ff を実行 ファイルが dos 形式の場合は fileformat=dos、unxi の場合は fileformat= と表示されますユニックス。

解決策:

(1) Linux コマンド dos2unix filename を使用して、ファイルを Unix 形式に直接変換します。

dos2unix filename
ログイン後にコピー

(2) sed を使用します。コマンド sed -i "s/\r//" filename または sed -i "s/^M//" filename は、終了文字を Unix 形式

sed -i “s/\r//” filename 
sed -i “s/^M//” filename
ログイン後にコピー

に直接置き換えます (3) vi filename はファイルを開きますset ff=unix ファイルを unix に設定してから、wq を実行し、unix 形式で保存します

set ff=unix
ログイン後にコピー

推奨学習: Linux ビデオ チュートリアル

以上がLinux が sh スクリプトを実行できない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!