どのような解釈なしで提供されたコンテンツのみを印刷するLinuxアプリケーションはありますか?それでは、私が何を送っても、いつも私が送った内容が正確に出力されるということですか?
echo
私は機能を持っていますが、printf
説明していないものと\
他のすべてが欲しいです。
私が望むアプリケーションの種類は次のとおりです。
newcommand "sa"" '' " "' ''""d f\sad\ f\sad\ \df\\ h\df\\\\\ sdf\h\sdfh\"" """" ''" " "ds\f\\\\ $%% \\as\ fsa\dg\ \afd\g\ \df\g \\df\g\\\\ n\ \n \\ sa\d \as \t a fsad g"" DF"G ""SD"F"" "DF"SG" """"Ds f"G" 'dsf'g 'sdf" G'ds f'g"SD fG"sd'f'g 'SFD""" ' > testfile1
cat testfile1
"sa"" '' " "' ''""d f\sad\ f\sad\ \df\\ h\df\\\\\ sdf\h\sdfh\"" """" ''" " "ds\f\\\\ $%% \\as\ fsa\dg\ \afd\g\ \df\g \\df\g\\\\ n\ \n \\ sa\d \as \t a fsad g"" DF"G ""SD"F"" "DF"SG" """"Ds f"G" 'dsf'g 'sdf" G'ds f'g"SD fG"sd'f'g 'SFD""" '
この機能を含むプログラムが見つかりません。デフォルトでは、および"
を含むすべての位置引数はそのまま出力されます'
。現状のまま出力されない唯一のことは|<>
明らかな理由によるものです。
いいですね。私が望むもののより良い例は次のとおりです。
私はコマンドラインから1行でできることが欲しいです。nano
または、vi
フルテキスト行を作成して実行できます。
ベストアンサー1
これはシェル構文の一部であり、コマンドに渡されるもの"
で\
はなく、コマンドはそれを使用して何もできません。
これ
printf %s 'foo " bar' "bar ' baz" > file
コマンドラインはsh
言語のコード(スペース、、、、'
文字が特定の意味を"
持つ)であり、ユーティリティに渡される行では>
ありません。printf
シェルはこれを引数printf
として実行すると解釈し、標準出力はにリダイレクトされます。%s
foo " bar
bar ' baz
file
表示は引数リストのみであり、その引数リストを使用して呼び出すために使用されたシェルコード(またはシェルではなくPythonで呼び出された場合はPythonコード)はprintf
表示されません。これらのそれぞれは説明なしで印刷されるため、が含まれます。printf
printf %s
file
foo " barbar ' baz
ここでは、別のシェル構文構造であるhere-documentを使用できます。ここでは文書区切り文字が引用されており、この場合は解釈は行われません。
cat << 'EOF' > testfile
"sa"" '' " "' ''""d f\sad\ f\sad\ \df\\ h\df\\\\\ sdf\h\sdfh\"" """" ''" " "ds\f\\\\ $%% \\as\ fsa\dg\ \afd\g\ \df\g \\df\g\\\\ n\ \n \\ sa\d \as \t a fsad g"" DF"G ""SD"F"" "DF"SG" """"Ds f"G" 'dsf'g 'sdf" G'ds f'g"SD fG"sd'f'g 'SFD""" '
EOF
テキストの唯一の制限は次のとおりです。
- 以下を除き、
zsh
NULバイトを含めることはできません。 EOF
独自の行に含めることはできません(必要に応じて他の区切り文字を使用できます)。- テキストが空でない場合は、末尾の改行が常に追加されます。
または、以下を実行できます。
cat > file
その後は、cat
ユーザー入力を受け入れるシェルではなく、必要なものを入力して終了できますCtrl+D。
ハッカーとして、あなたはシェルがコメントのテキストを解釈するのではなく、保存された履歴からコマンドラインを検索して出力するという事実に頼ることができます#
。たとえば、bash
シェルの相互作用を使用します。
fc -l -0 | cut -d '#' -f3- > testfile #the text here with \ ' "