Say I have the following Bash script stored in the file
#!/bin/bash echo foo
Without having to
scp the file, how could I execute the script stored in
foo.sh on a remote machine?
I have tried the following (with a few variations) to no success:
$ ssh root@remote eval `cat foo.sh`
eval `cat foo.sh` seems to expand to
eval #!/bin/bash echo foo here
ssh root@MachineB 'bash -s' < local_script.sh
In accepted answer I see:
I'd like to have it as a one liner. Could you make a small code example?
That should be it:
ssh root@MachineB 'bash -s -- uno' < local_script.sh
or better, with a here-in document
ssh root@MachineB 'bash -s -- uno' <<EOF > date > echo $1 > EOF jue sep 18 13:01:25 CEST 2014 uno
cat foo.sh | ssh -T root@remote
cat foo.sh | ssh -T root@remote will to the trick. The
-T option suppresses a warning you would otherwise get because you're piping input from a file.