Debian/LinuxのPCを起動して、最初にコンソールを開くと、何もしてないのにエラー表示。
: command not found bash: /home/xxxx/.bashrc: 行 6: 予期しないトークン `$'in\r'' 周辺に構文エラーがあります 'ash: /home/xxxx/.bashrc: 行 6: `case $- in $
原因:
.bashrcを編集した際、Dos/Windows改行で保存してしまった。
対応:
改行\r\nを \r にすればいい。
確認:
・file コマンドで見てみる。
$ file .bashrc
.bashrc: UTF-8 Unicode text, with CRLF line terminators
'CRLF'となってる。通常のUNIX系CR キャリッジ・リターンだけなら、
"with CRLF line terminators"は表示されない。
(LFは ラインフィード)
・catで見てみる
$ cat -e .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.^M$
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)^M$
# for examples^M$
^M$.....略
'^M$' が、Windows/Dosの改行
作業:
dos2unix をinstallして\r\nを\rにする ( unix2dosというコマンドも有る)。
たぶん、sed, awk, perl でも簡単に置換できる。
お手軽に、KDEのエディタ Kate (≒KWrite)から ツール→行末→UNIX→保存 してログアウト、ログイン という対処で済ました。
付録:
立ち上がりは ash? dashと思っていた。
$ ls -l /bin/sh ...略... /bin/sh -> dash
やっぱり dash?
本来の ashをカスタマイズした dash (debian ash)というのが別にあるらしい。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。