私はこれに対する答えを見つけることができず、明らかなようですが、まだ助けが必要です。
コマンドラインオプションを作成しようとしたときに、さまざまなフラグを使用し、それをエコーして正しいことを確認しました。
ただし、この例はまだ失敗します。
declare foo="-n 40 "
echo $foo
実行すると「40」のみ表示されます。
前にダッシュを追加すると-n
、印刷--n
バックスラッシュ/エスケープ?これを印刷します。要するに、私はこの単純なテキストを正しく表示するために何が起こっているのかわかりません。試してみました。--
(処理を中止)は役に立ちません。
可能であれば、文書のどの部分を指摘し、これがなぜ説明されるのかを説明してください。-n
そうすれば、今後はやらないことを学んで直すことができます。
ありがとうございます。
答え1
bashecho
組み込み関数は-n
引数をそれ自体として解釈します(help echo
または で説明されているようにman bash
)。
-n
改行が追加されていません。
他のいくつかのecho
実装も同じことをします。
代わりに使用してくださいprintf
。
printf '%s\n' "$foo"