Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Using "||" as a string literal?
2018-04-05, 13:23 (This post was last modified: 2018-04-05 13:33 by myxal.)
Post: #1
Using "||" as a string literal?
Is there a way to put a string containing "||" into a variable, and then using said variable in a kernel command?

This doesn't work - I can see in /proc/cmdline that the ocs_postrun is cut off at the double-pipe, while cmd_netdev is still included (so I shouldn't be hitting some limit, AFAICT)
Code:
...
set cmd_postrun       ocs_postrun=" (cat error.log || echo success) | nc -l -p 4444"
...
kernel ${clonezilla-url} ${cmd_common} ${cmd_postrun} ${cmd_netdev}

EDIT: It turns out bash doesn't mind if its own double-pipe isn't surrounded with spaces, so I'll probably resolve my issue by removing them. Still, it would be nice to know if the literal usage is somehow possible.
Find all posts by this user
Quote this message in a reply
2018-04-05, 14:30 (This post was last modified: 2018-04-05 14:31 by mcb30.)
Post: #2
RE: Using "||" as a string literal?
(2018-04-05 13:23)myxal Wrote:  Is there a way to put a string containing "||" into a variable, and then using said variable in a kernel command?

Yes. There's no general purpose character escaping mechanism (e.g. a backslash) in iPXE, but you can hack around it using e.g.

Code:
set pipe |
set pipes ${pipe}${pipe}

and then use "${pipes}" in place of "||".

Michael
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)