$ '\ r':コマンドが見つかりません - CentosOSのcPanelを介したクラウドサービス用のファイルエンコード

$ '\ r':コマンドが見つかりません - CentosOSのcPanelを介したクラウドサービス用のファイルエンコード

私はCentossリモートサーバーでcPanelを介して愚かなスクリプトを書いていますが、それについて何ができるのか、スクリプトは時々変更される必要があり、FTP経由でアップロードするたびにこのプロセスのために迷惑になります。

(スクリプトはシステム上で直接cronで実行され、変更することはできません。はい、可能なプロバイダを切り替える必要がありますが、今は他の人の手に委ねてはいけません。)

すべての空の行に対して $'\r': command not find を返します。これはエディタがその不用意な終わり行を追加することを意味するため、すべての空の行にハッシュ(コメント)を入れてこれを行う必要があります。しかし、これは「予期しないファイルの終わり」などの別のエラーを引き起こします。

99.99%はオンライン編集者が保存したファイルのエンコードによるものであると確信しています。

次のエンコーディングをすべて使用できるエディタ:

- ansi_x3.110-1983
- ansi_x3.4-1968
- armscii-8
- asmo_449
- big5
- big5-hkscs
- brf
- bs_4730
- bs_viewdata
- cp10007
- cp1125
- cp1250
- cp1253
- cp1254
- cp1255
- cp1256
- cp1257
- cp1258
- cp737
- cp770
- cp771
- cp772
- cp773
- cp774
- cp775
- csa_z243.4-1985-1
- csa_z243.4-1985-2
- csa_z243.4-1985-gr
- csn_369103
- cwi
- dec-mcs
- din_66003
- ds_2089
- ebcdic-at-de
- ebcdic-at-de-a
- ebcdic-ca-fr
- ebcdic-dk-no
- ebcdic-dk-no-a
- ebcdic-es
- ebcdic-es-a
- ebcdic-es-s
- ebcdic-fi-se
- ebcdic-fi-se-a
- ebcdic-fr
- ebcdic-is-friss
- ebcdic-it
- ebcdic-pt
- ebcdic-uk
- ebcdic-us
- ecma-cyrillic
- es
- es2
- euc-jisx0213
- euc-jp
- euc-jp-ms
- euc-kr
- euc-tw
- gb18030
- gb2312
- gb_1988-80
- gbk
- georgian-academy
- georgian-ps
- gost_19768-74
- greek-ccitt
- greek7
- greek7-old
- gsm03.38
- hp-greek8
- hp-roman8
- hp-roman9
- hp-thai8
- hp-turkish8
- hz-gb-2312
- ibm037
- ibm038
- ibm1004
- ibm1026
- ibm1047
- ibm1124
- ibm1129
- ibm1132
- ibm1133
- ibm1160
- ibm1161
- ibm1162
- ibm1163
- ibm1164
- ibm256
- ibm273
- ibm274
- ibm275
- ibm277
- ibm278
- ibm280
- ibm281
- ibm284
- ibm285
- ibm290
- ibm297
- ibm420
- ibm423
- ibm424
- ibm437
- ibm500
- ibm850
- ibm851
- ibm852
- ibm855
- ibm856
- ibm857
- ibm858
- ibm860
- ibm861
- ibm862
- ibm863
- ibm864
- ibm865
- ibm866
- ibm866nav
- ibm868
- ibm869
- ibm870
- ibm871
- ibm874
- ibm875
- ibm880
- ibm891
- ibm903
- ibm904
- ibm905
- ibm918
- ibm922
- iec_p27-1
- inis
- inis-8
- inis-cyrillic
- invariant
- isiri-3342
- iso-8859-1
- iso-8859-10
- iso-8859-11
- iso-8859-13
- iso-8859-14
- iso-8859-15
- iso-8859-16
- iso-8859-2
- iso-8859-3
- iso-8859-4
- iso-8859-5
- iso-8859-6
- iso-8859-7
- iso-8859-8
- iso-8859-9
- iso-8859-9e
- iso-ir-197
- iso-ir-209
- iso-ir-90
- iso_10367-box
- iso_10646
- iso_11548-1
- iso_2033-1983
- iso_5427
- iso_5427-ext
- iso_5428
- iso_646.basic
- iso_646.irv
- iso_6937
- iso_6937-2-25
- iso_6937-2-add
- iso_8859-1,gl
- iso_8859-supp
- it
- jis_c6220-1969-jp
- jis_c6220-1969-ro
- jis_c6229-1984-a
- jis_c6229-1984-b
- jis_c6229-1984-b-add
- jis_c6229-1984-hand
- jis_c6229-1984-hand-add
- jis_c6229-1984-kana
- jis_x0201
- johab
- jus_i.b1.002
- jus_i.b1.003-mac
- jus_i.b1.003-serb
- koi-8
- koi8-r
- koi8-ru
- koi8-t
- koi8-u
- ks_c_5601-1987
- ksc5636
- latin-greek
- latin-greek-1
- mac-centraleurope
- mac-cyrillic
- mac-is
- mac-sami
- mac-uk
- macintosh
- mik
- msz_7795.3
- nats-dano
- nats-dano-add
- nats-sefi
- nats-sefi-add
- nc_nc00-10
- nextstep
- nf_z_62-010
- nf_z_62-010_1973
- ns_4551-1
- ns_4551-2
- pt
- pt154
- pt2
- rk1048
- sami
- sami-ws2
- sen_850200_b
- sen_850200_c
- shift_jis
- shift_jisx0213
- t.101-g2
- t.61-7bit
- t.61-8bit
- tcvn5712-1
- tis-620
- tscii
- us-ascii
- utf-7
- utf-8
- videotex-suppl
- viscii
- windows-1251
- windows-1252
- windows-31j- 

一部はファイルがロードされていないため互換性がないようです。

問題を解決できるUnixファイルのエンコーディングが見つかりませんでした。

どのエンコーディングを使用できますか?

一部(askubuntuでスレッドが閉じられる前)はdos2unixを使用することを示唆していましたが、システム、コンソールにさらにアクセスし、パッケージをインストールできるとよいでしょう。

cPanelでスクリプトを書くことはできますか?


アップデート01:

私は試みる:

export SHELLOPTS
set -o igncr

〜のようにhttps://superuser.com/questions/330781/trouble-editing-bash-profile-bash-r-command-not-found/330783提案、

それから私は次を得ます:

./_private/myScript.sh: line 2: export: `SHELLOPTS ': not a valid identifier
./_private/myScript.sh: line 3: set: igncr : invalid option name

アップデート02:

-o igncrについてどこかで読みました(投稿が覚えていないので申し訳ありません)。

だから私はcronを次のようにプログラムするように要求しました:(nice -n19は「デフォルト」で、避けられません)

nice -n19 bash -x -o igncr ./_private/myScript.sh
bash -x -o igncr nice -n19 ./_private/myScript.sh

2 つのケース: bash: line 0: bash: igncr: 無効なオプション名


私の考えでは、条件でスクリプトを起動するようです。

sed -i'.bak' s/\r//g ~/myScript.sh

スクリプトに\ rがあるとどうなりますか?

(からインスピレーションを受けるhttps://stackoverflow.com/questions/11616835/r-command-not-found-bashrc-bash-profile)

ベストアンサー1

最初の数行だけ読みました(長すぎます)。ただし、\rこれはMS-Windowsコンピュータで編集していることを示します。 MS-Windowsは互換性のない方法で行末()を実行します\r\n。他のシステムには(\n)があります。

解決策:

  • MS-Windowsを使用しないでください
  • 正しい行末を使用するように構成できるエディターを使用してください。
  • dos2unixインポート時にファイルを挿入します。

おすすめ記事