リモートファイルシステムには、短いテキスト文字列(1行の一連の数字)を含むファイルがあります。 nanoやEmacsなどのテキストエディタでファイルを開くと、文字列を見ることができます。また、これが関連しているかどうかはわかりませんが、ls
ファイルは8バイト*で報告されます。
変なのはcat
これを報告してもcat
何も報告されないということです。
ところで、行の末尾に改行を追加するとcat
内容が表示され、混乱します。
だから私の質問は次のようになります
- なぜこれが起こるのですか?
cat
内容を印刷するには、各行の最後に改行が本当に必要ですか?これがデフォルトの動作ですかcat
? (それではなぜですか?) cat
改行の有無にかかわらず、ファイルのすべての内容を強制的に印刷する方法はありますか?
修正する:
以下の回答に基づいて、プロンプトを定義した方法を投稿するのが適切だと思いました。私はにあり、zsh
次のものがあります。2行私~/.zshrc
:
export PS1="%{$fg[white]%}%n%{$reset_color%} @ %{$fg[green]%}%m: %{$fg[yellow]%}%~ %{$reset_color%}%%
> "
プロンプトを定義する前に、次の2行があります。これにより、シェルでカラーエイリアスを使用できると考えられます。
autoload -U colors
colors
質問を変えてください:
上記を考慮して、どのようにプロンプトに改行を追加し、上記のようにcat
ファイルを正しく印刷できますか?
touch
*私がランダムファイルであれば、ファイルls
が0バイトしかないと報告されますが、ls
私のファイルが8バイトという事実を報告するのが正しいと思います。しかし、これが役に立つかどうかはわかりません。
ベストアンサー1
Zshは、プロンプトが既知の場所から開始できるように、プロンプトの前にCRを自動的に出力します。 zsh以外のシェルを使用すると、次のようになります。
$ cat file
12345678$ _ <-- your prompt after the file contents
この問題に関するよくある質問は次のとおりです。http://zsh.sourceforge.net/FAQ/zshfaq03.html#l40
このため、テキストファイルは改行で終わる必要があります。改行を含まないテキストファイルを生成するツールを見つけることはまれです(クロスプラットフォーム環境を除外 - Windowsメモ帳は改行でファイルを終了しません)はい)
ほとんどのコマンドの出力後にプロンプトの前に空白行を追加することができる場合(Windowsなど)、プロンプトの先頭に改行文字を追加してみてください。
export PS1="
%{$fg[white]%}%n%{$reset_color%} @ %{$fg[green]%}%m: %{$fg[yellow]%}%~ %{$reset_color%}%%
> "
そして(オンにしても実際に動作する可能性があります)、プロンプト_crシェルオプションを無効にします。リンクメールで「スペースライン」オプションを試すこともできます。