だから私はこの奇妙な動作を把握しようとしています。二重引用符でLinuxコマンドを実行する
$ hello hello
-ksh: hello: not found [No such file or directory]
$ "hello hello"
-ksh: hello hello: not found [No such file or directory]
$ echo hello hello
hello hello
$ `echo hello hello`
-ksh: hello: not found [No such file or directory]
$ echo \"hello hello\"
"hello hello"
$ `echo \"hello hello\"`
-ksh: "hello: not found [No such file or directory]
第2と第6のコマンドが私の質問に最も関連しています。その2番目のコマンド"hello hello"
を実行すると、それは1つの大きな引数として評価されます。しかし、その最後のコマンドを実行しようとすると、
`echo \"hello hello\"`
それは同じ動作をしていますか?しかしそれは"hello
をそれ自身の独立した言葉として見ている。いくつかこれについて説明し、6番目のコマンドを2番目のコマンドと同じように動作させる方法がありますか? "hello hello"を1つのステートメントとして評価しますか?
(これはもっと実用的なアプリケーションですが、これは私が作成できる最小の例でした)。
ありがとうございます!
編集:私はダウンボトムがあるので、私はどの問題に取り組んでいるのかを具体的に説明します。
rcli4 6379 keys AAA* | sed -e "s/.*/'&'/" | while read line; do rcli4 6379 get $line; done
rcli4
がredis-cli -p
ためだけの別名であることに注意してください。私は、引用符が間違って解析されているため、
(error) ERR wrong number of arguments for 'get' command
が得られています。私は引用符を追加する、sed文を削除するなどのようなさまざまな組み合わせを試しましたが、私のオリジナルのこんにちはの問題を解決できれば、私の特定の問題を解決するための十分な洞察が得られます。
'ksh'は' bash'ではありません。あなたのタグやシェルを修正する必要があるかもしれません。 –
引用符付きの文字列の中に引用符はただ一つの文字です。特別な力はありません。 – John1024
@EricRenoufおっと!ありがとうございました –