タグ付けされた質問 「here-string」

2
wc <<<“ $ string”がprintf“ $ string”よりも1バイト長い長さを表示するのはなぜですか| トイレ?
偶然にも、wcそれがbashから入力を取得する方法に応じてカウントが異なることがわかりました。 $ s='hello' $ wc -m &lt;&lt;&lt;"$s" 6 $ wc -c &lt;&lt;&lt;"$s" 6 $ printf '%s' "$s" | wc -m 5 $ printf '%s' "$s" | wc -c 5 これは-私見が混乱する-どこかに文書化された行動ですか?wcここで何を数えますか?これは想定される改行ですか?


3
ヒアドキュメントの一時ファイルを作成できません:権限が拒否されました
[注:この同様のQは、同じbashエラーメッセージに関係しています。この他のQの重複としてマークされていますます。しかし、このエラーの非常に異なる原因を見つけたので、以下の自分のQに回答します。] この以前は機能していたbashスクリプト行 while ... do ... done &lt;&lt;&lt; "$foo" ある日、このエラーメッセージが生成され始めました。 ヒアドキュメントの一時ファイルを作成できません:権限が拒否されました

4
zshではなくbashでカットが失敗するのはなぜですか?
タブ区切りフィールドを含むファイルを作成します。 echo foo$'\t'bar$'\t'baz$'\n'foo$'\t'bar$'\t'baz &gt; input 次の名前のスクリプトがあります zsh.sh #!/usr/bin/env zsh while read line; do &lt;&lt;&lt;$line cut -f 2 done &lt; "$1" 私はそれをテストします。 $ ./zsh.sh input bar bar これは正常に動作します。しかし、最初の行をbash代わりに呼び出すように変更すると、失敗します。 $ ./bash.sh input foo bar baz foo bar baz なぜこれが失敗しbashて動作するのzshですか? 追加のトラブルシューティング シバンの代わりに直接パスを使用envすると、同じ動作が生成されます。 echohere-stringを使用する代わりにでパイピングして&lt;&lt;&lt;$lineも、同じ動作が生成されます。すなわちecho $line | cut -f 2。 使用するawk代わりに、cut 作品の両方のシェルのため。すなわち&lt;&lt;&lt;$line awk '{print $2}'。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.