私はこのコマンドを持っています(詳細はGoogleが選択したテキストのショートカット):
sh -c 'firefox -remote "openURL(http://www.google.com/search?q=$(xsel),new-tab)"'
しかし、それで終わるテキストを選択すると、閉じ)
括弧で解析されます。
解決策はありますか? (なんとか脱出してるみたいですか?)
答え1
返された文字列をURLエンコードする必要がありますxsel
。 Pythonの使用:
sh -c 'firefox -remote "openURL(http://www.google.com/search?q=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])" "$(xsel)"),new-tab)"'
sh -c 'firefox -remote "openURL(http://www.google.com/search?q=$(perl -MURI::Escape -e '\''print uri_escape($ARGV[0]);'\'' "$(xsel)"),new-tab)"'
説明する
Google検索の実行をリクエストしたときにfirefox
何が起こるのかを確認してくださいfoo()
。
$ firefox -remote 'openURL(http://www.google.com/search?q=Foo(),new-tab)'
Error: Failed to send command: 500 command not parseable
「解析可能」にするには、文字をURLエンコードする必要があります。たとえば、Foo()
エンコード後は次のようになります。
$ python -c "import urllib, sys; print urllib.quote(sys.argv[1])" "Foo()"
Foo%28%29