Bash - How to pass arguments to a script that is read via standard input
I am trying execute a script from standard input and also pass arguments to it. Is there a way to do it?
Let's say that I have the following:
cat script.sh | bash
How would I pass the arguments to the script?
I do not want to do this:
bash script.sh arguments
Nor this:
./script.sh arguments
Solution 1:
On Linux,
cat script.sh | bash /dev/stdin arguments
seems to work.
Solution 2:
After @ccarton's comment:
cat script.sh | bash -s - arguments
It's more portable than @Michael Hoffman's solution.