awful.util.spawn_with_shell('vlc $(xclip -o)')
出力がxclip
エスケープされているかどうかを確認する方法スペース文字パラメータ区切り記号ではありませんか?たとえば、文字列「foo bar」(引用符を除く)を選択してMod4+を押すと、vVLCが開くことができないと文句を言います。両方「金持ち」そして「バー」。
これを説明するために、次のようにシェルコンテキストで問題を確認します。
$ params() {
for param
do
echo "$param"
done
}
$ params $(xclip -o)
params
$(xclip
-o)
次のように修正してください。
$ params "$(xclip -o)"
params "$(xclip -o)"
しかし、Lua呼び出しをこれに変更すると、何もしません。
awful.util.spawn_with_shell('vlc "$(xclip -o)"')
ベストアンサー1
シェルは xclip の出力を再評価しないため、必要ありません。シェルはvlcを実行し、xclip -o
出力を評価せずにパラメータを値に設定します。
直接テストするには、次のコマンドを実行できます。
echo $(echo '`ls`')
echo $(echo '$PATH')
echo $(echo '$(echo foobar)')