長年私を悩ませてきたこの難問を解決する時が来ました...
私は時々これに会ってきました、そして、これが行く方法であると思いました:
$(comm "$(arg)")
そして、私の見解は経験に強く支えられていると思いました。しかし、私はもうよくわかりません。Shellcheckでも決心することはできません。両方です:
"$(dirname $0)"/stop.bash
^-- SC2086: Double quote to prevent globbing and word splitting.
そして:
$(dirname "$0")/stop.bash
^-- SC2046: Quote this to prevent word splitting.
背後にあるロジックは何ですか?
(これはShellcheckバージョン0.4.4、btwです。)
"$(dirname "$0")"/stop.bash
?うまくいくようです...ストーリーは何ですか?
shell_level_1 $(shell_level_2) shell_level_1
:あなたが内部にあるとき$(....)
(すなわち、あなたが直接書き込むことができますが、シェルの「サブレベル」を入力し、しかし、あなたは主のレベルにあったかのようにあなたはそれに書くことができる"
代わりに、\"
など、)。例: touch "/tmp/a file" ; echo "its size is: $(find "/tmp/a file" -ls | awk '{print $5}) ..." : if you used backticks you'd have to
\ "/ tmp / a file \" `およびprint \$5
。$(...)
必要はありません:シェル新たなレベルに適応し、あなたのインタプリタは今、あまりにもそのレベルにあるかのようにあなたが直接書き込むことができます。