Ah ok I understand now. Right now, the only way is to escape space and single quote.
For instance John\ O\’Deer will end with John O’Deer. However, the double quote should do the escape for you, but we have the issue due to Felix Gogo Runtime: java.io.EOFException: unexpected EOT looking for matching quote: ' That’s due to the Felix Gogo runtime update and a change we did there. Let me create a Jira and fix that. Sorry for the inconvenience. Regards JB > Le 22 juil. 2020 à 13:20, J. Brebec <[email protected]> a écrit : > > Sorry. My issue is not about double quote or spaces, it's about spaces and > single quote (or apostrophe). For example, I have commands which take a query > as parameter. I used to write the query with doubles quotes, because there is > a lot of spaces. However, I can't use an apostrophe in this kind of query. > > If I use your example below, you can see it "looks" like using a quote worked > because the syntax error disappears. however it's not, an invalid user has > been created with a backslash. > > karaf@root()> feature:repo-add > mvn:org.apache.karaf.examples/karaf-command-example-features/4.2.9/xml > Adding feature url > mvn:org.apache.karaf.examples/karaf-command-example-features/4.2.9/xml > karaf@root()> feature:install karaf-command-example-provider > karaf@root()> feature:install karaf-command-example > karaf@root()> booking:list > ID | Flight | Customer > ---+--------+--------- > karaf@root()> booking:add X1 "John O'Connor" > Error executing command: unexpected EOT looking for matching quote: ' > karaf@root()> booking:add X1 "John O\'Connor" > karaf@root()> booking:list > ID | Flight | Customer > --------+----------------+--------- > 9198438 | John O\'Connor | X1 > karaf@root()> booking:add X2 John\ O\'Connor > karaf@root()> booking:list > ID | Flight | Customer > --------+----------------+--------- > 6573975 | John O'Connor | X2 > 9198438 | John O\'Connor | X1 > > On 2020/07/22 07:50:50, Jean-Baptiste Onofre <[email protected]> wrote: >> Sorry I don’t understand. >> >> The quote are used as you can see in my previous email (John Doe is without >> quote but with space). >> >> Regards >> JB >> >>> Le 22 juil. 2020 à 09:32, J. Brebec <[email protected]> a écrit : >>> >>> Thanks. >>> >>> It works indeed if I doesn't use double quotes and quote every spaces and >>> single quote. It just looks.. not usual to have to use a backslash before a >>> single quote to be valid syntaxically but this backslash is visible by the >>> command. >>> >>> I have this behavior in all my command (and the camel too), but your >>> workaround helped me, thanks. >>> >>> >>> On 2020/07/22 06:29:10, Jean-Baptiste Onofre <[email protected]> wrote: >>>> Hi, >>>> >>>> I just tested with Karaf Command example: >>>> >>>> karaf@root()> feature:repo-add >>>> mvn:org.apache.karaf.examples/karaf-command-example-features/4.2.9/xml >>>> Adding feature url >>>> mvn:org.apache.karaf.examples/karaf-command-example-features/4.2.9/xml >>>> karaf@root()> feature:install karaf-command-example-provider >>>> karaf@root()> feature:install karaf-command-example >>>> karaf@root()> booking:list >>>> ID │ Flight │ Customer >>>> ───┼────────┼───────── >>>> karaf@root()> booking:add AF520 "John Doe" >>>> karaf@root()> booking:list >>>> ID │ Flight │ Customer >>>> ────────┼──────────┼───────── >>>> 7187096 │ John Doe │ AF520 >>>> >>>> It just works fine with double quotes as you can see. >>>> >>>> Backslash also works: >>>> >>>> karaf@root()> booking:add FOO Other\ Test >>>> karaf@root()> booking:list >>>> ID │ Flight │ Customer >>>> ────────┼────────────┼───────── >>>> 2677320 │ Other Test │ FOO >>>> 7187096 │ John Doe │ AF520 >>>> >>>> Do you have the problem specifically with camel commands or generally >>>> speaking ? >>>> >>>> If it’s only with Camel commands, I will take a look specifically to Camel. >>>> >>>> Regards >>>> JB >>>> >>>>> Le 21 juil. 2020 à 15:24, J. Brebec <[email protected]> a écrit : >>>>> >>>>> A simple example with camel and Karaf 4.2.9: >>>>> >>>>> karaf@root()> camel:component-list "a'b" >>>>> Error executing command: unexpected EOT looking for matching quote: ' >>>>> karaf@root()> camel:component-list "a\'b" >>>>> Camel context a\'b not found. >>>>> >>>>> Without a quote "a'b" is invalid. >>>>> With a backslash, "a\'b" is valid, however, the command "sees" the >>>>> backslash (and I don't think every command should handle quoting in an >>>>> argument?) >>>>> >>>>> If I use a native gogo(jline?) command, it's working: >>>>> >>>>> karaf@root()> echo "a\'b" >>>>> a'b >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On 2020/07/21 12:13:42, Jean-Baptiste Onofre <[email protected]> wrote: >>>>>> Hi, >>>>>> >>>>>> Assuming the last argument is String, did you try " and \" ? >>>>>> >>>>>> I just try and it works fine for me (on Linux and Mac). >>>>>> >>>>>> Can you provide some environment details to me please ? >>>>>> >>>>>> Thanks ! >>>>>> Regards >>>>>> JB >>>>>> >>>>>>> Le 21 juil. 2020 à 10:08, J. Brebec <[email protected]> a écrit : >>>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> I have a Karaf shell command which take a String parameters. >>>>>>> How can I call it with a parameters with space and quote ? >>>>>>> >>>>>>> this doesn't work (the command is not executed with a error about a >>>>>>> non-matched quote) >>>>>>> ns:mycmd "xx n'est pas conforme" >>>>>>> >>>>>>> this doesn't work either: the command is executed, but the backlash is >>>>>>> seen by my command >>>>>>> ns:mycmd "xx n\'est pas conforme" >>>>>>> >>>>>>> I didn't found the right syntax.. >>>>>>> >>>>>>> thanks! >>>>>>> >>>>>>> Jérémie >>>>>>> >>>>>> >>>>>> >>>> >>>> >> >>
