bashコマンド文字列の逐語的な文字を確認するにはどうすればよいですか?
今朝、bashターミナルでこの奇妙な振る舞いをしました: user@home:/home/user$ [ -f /etc/openvpn/client.conf ] && echo true bash: [: missing «]» user@home:/home/user$ [ -f /etc/openvpn/client.conf ] && echo true true 最初のコマンドは、geditで編集されたスクリプトから貼り付けられました。 2番目は、ターミナルで直接入力されました。 掘り下げた後、30番目の文字(client.confと "]"の間のスペース)を削除し、スペースに置き換えるとコマンドが再び機能することがわかりました。 私の仮定は正しかった:未知の空白文字がコマンドに滑り込んだが、問題は: コマンドをデバッグできるように、端末でこれらの文字を表示するにはどうすればよいですか?さらに重要なこと: これが再び発生するのを防ぐにはどうすればよいですか? ところで、Ubuntu 18.04 /フランス語を実行しています。コマンドを貼り付けるスクリプトはUSBドライブにあり、Windowsでも編集されている可能性があります。 非常に良い答えをありがとう。不良文字は、c2 a0の改行なしスペースUTF-8文字です。sedで特別な「M-BM-」キャラクターを削除する方法の質問には、そのキャラクターに関する興味深い事実があります。 奇妙なことは、スクリプトにこのキャラクターがないことです。だから、どこから来たのか分からない。