3 ms·
Even something like # only test if the build succeeds ./build.py && ./test.py didn't work in fish until recently. It used to be 'and' but they recentl
by chubot 5y ago
Even something like
# only test if the build succeeds
./build.py && ./test.py
didn't work in fish until recently. It used to be 'and' but they recently added && for compatibility.
I think redirects and possibly pipelines work differently in fish too, although I don't remember the details. I type those on the command line frequently. I occasionally use loops as well, though when it gets big I do put it in a file.
- mattgreenrocks 5y agoRedirects and pipes work as you'd expect. Loop syntax is different. The difference in subshell invocation is the thing that sticks out the most: $(cmd) vs (cmd) in fish.
- chubot 5y agoIt looks like all of these are the same echo hi > out.txt echo append >> out.txt sort < stdin.txt ls /bad 2>&1 | tee out.txt But here docs don't work the same way: sort <<EOF # syntax error in fish I don't really like the here doc syntax so I guess that is pretty good. The && issue is still there on my Ubuntu Bionic machine: fish: Unsupported use of '&&'. In fish, please use 'COMMAND; and COMMAND'. ls && ls
- ridiculous_fish 5y agoThe && syntax was added in fish 3, released in 2018.
- iamevn 5y agoPiping and redirects seem to just work, command substitution is always just parentheses with no $ in front. Process substitution is not magic syntax like in sh, it's just a command that reads from stdin, writes to a temporary file, and outputs the path to that file: vim (ls -lh | psub)