macOS端末では文字「y」は印刷されません。 [閉じる]

macOS端末では文字「y」は印刷されません。 [閉じる]

私は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

関連情報