私はBASHスクリプトを学び、Homebrewを使ってBASHをバージョン5.1にアップグレードしています。 「y」と入力しようとすると、音だけが聞こえます。文字「y」を含むスクリプトを実行すると、「y:キーシーケンスの終端がありません」というメッセージが表示されます。私の研究では、.inputrcファイルと関連があることがわかりました。ファイルには4行しか含まれていません。
set completion-ignore-case on
set show-all-if-ambiguous on
TAB: menu-complete
y
nanoを使用して最後の行から「y」を削除しようとしましたが、ファイルをディレクトリに書き換えることはできません。最後の「y」が問題なので削除する必要があると思うのは正しいですか?それでは、どうすればいいですか?そうでなければ、何をもっと試すことができますか?
どんな助けでも大変感謝します。ありがとうございます!
PS:zshシェルを使用すると、この問題は発生しません。
nanoを.inputrcに再度保存しようとすると、「[書き込み用のファイルを開けませんでした:権限が拒否されました。」」というメッセージが表示されます。
2番目のコメントが何を意味するのかわかりません。 sed --in-place....?
私自身の問題を解決しました! .inputrcへの書き込み権限を取得するために「sudo」を使用します。ファイルから「y」文字を削除してから、BASHコマンドラインで「y」文字を使用できました。
答え1
この文字はy
ファイルの1行にはならないため、.inputrc
削除する必要があります。
これが不可能な場合は、ファイルの所有権が間違っている可能性があります。誤ってroot(または他の)ユーザーとしてファイルを作成した場合は、ファイルの所有権が正しくない可能性があります。
現在そのユーザーとしてログインしており、sudo
一時的に特権を昇格させるツールにアクセスできると仮定すると、所有権を正しいユーザーに変更する正しい方法は、次のようにすることです。
sudo chown "$(id -u):$(id -g)" ~/.inputrc
ここで、コマンドid
はユーザーとグループIDを検索し、ファイルのユーザーとchown
グループの所有権を設定するために使用されます。
その後、エディタでファイルを開いて変更できます。 macOSシステムのコマンドラインを直接使用して、ファイルの4行目を削除することもできます。
/usr/bin/sed -i '' 4d ~/.inputrc