Suppose command1 takes another command (say command2) as argument, with command2's arguments as the remaining arguments of comman1, i.e. command1 command2 arg...When command2 is a made up of several commands (each of which might have its own arguments and options), e.g. when command2 is command 3; command 4 and command 3 | command 4, how do you specify command2 as an argument to command1? Does my question belong to bash, command1, or both?The solution I can think of is: writing command2 as a bash scriptand passing the script name in place of command2 as an argument tocommand1. But it seems not work in the following example:$ torify /tmp/test-tor/download.sh/usr/bin/torsocks: 162: exec: /tmp/test-tor/download.sh: not foundwhere the content of /tmp/test-tor/download.sh is:#! /usr/bin/bashcurl ifconfig.me myprogram -n myargI also would like to know if it is possible to solve the problem without writing ascript, because it seems overkill to write a script when command2is short.For example, when using tor with a program, I want to check myexternal ip address by curl ifconfig.me, before running theprogramtorify curl ifconfig.me; myprogram -n myarg but it doesn't work.
How to specify a compound command as an argument to another command?
bash;tor