Ranter
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Comments
-
Cool! But it's quite straightforward..
- ´ -- legacy af, never use them
- ' -- shell won't touch anything inside, ie you will have what you have. No interpolation, no nothing
- " -- shell will interpolate whatever shell expressions it finds inside
there's not much more to it than that... -
retoor30302d@netikras that's true, but he probably needs to swap between ' and " to nest some strings or smth. That can be annoying.
Just use some shlex! Python:
import shlex
In [4]: shlex.quote("HHa 'aaaa' \"aaa\" ")
Out[4]: '\'HHa \'"\'"\'aaaa\'"\'"\' "aaa" \'' -
@kiki not quotes. Angle brackets. They are stream redirection operators, much like in c++.
-
kiki357932d@netikras those are Cyrillic кавычки-ёлочки, and I doubt they are part of any C++ spec. Did you mean >>?
-
@kiki there's a variety of its uses. Single > ensures an empty file and streams stdout into it. Double >> -- ensures a file and does thd same [not necessarily empty, ie O_APPEND -- appends to a gile if it already exists].
< -- streams file contents into stdin [for some command].
<<< -- streams following string contents into stdin. So you can compile some input in your script into a ctring and feed itninto some command's stdin.
<< -- allows you to compose a literal multiline string and feed it into stdin; terminated by a customizable terminator [immediately following the << notation]. Also called Heredocs
<(command) -- translates into a command's stdout file [in the /proc filesystem]. I often use it for ´diff´, as it only accepts files and I sometimes need to diff command outputs -
@kiki yes, that's what I meant. I assumed a genuine qn with a typo, not a troll question
-
retoor30302d@netikras I do know this stuff but don't use << but use piping to redirect command output to stdin. If I use `cat source.c | ./r --stdin` I can let r review or refactor a whole file based on how to it's configured in .rcontext.txt. With r you can make all sorts of AI applications, ther is a free version that doesn't require an api key right here: https://molodetz.nl/retoor/r. You can make spam filters, review tools and refactor / grammar fix / translation / branding tools in minutes. The possibilities are endless. Does require python 3.14-dev package tho :( Will remove that requirement asap, will do other solution for tooling than python. I assumed that my C application would be very powerful with python plugin but the dev dependency of specific version only causes issues on other people's pc.
-
Aldar12301dYou know how ' are used to keep shell from touching the containing string in any way, right?
What effed me up is that in bash, if you prepend the first apostrophe with a dollar sign, it overrides that and turns on escape sequence translation within the string
$ echo 'foo\nbar'
foo\nbar
$ echo $'foo\nbar'
foo
bar
Today I've had the pleasure of wrapping my brain around shell-quoting in all its insane glory
rant