wget and run/remove bash script in one line
15,518
Solution 1
I think you might need to actually execute it:
wget http://sitehere.com/install.sh -v -O install.sh; ./install.sh; rm -rf install.sh
Also, if you want a little more robustness, you can use && to separate commands, which will only attempt to execute the next command if the previous one succeeds:
wget http://sitehere.com/install.sh -v -O install.sh && ./install.sh; rm -rf install.sh
Solution 2
I like to pipe it into sh. No need to create and remove file locally.
wget http://sitehere.com/install.sh -O - | sh
Solution 3
I think this is the best way to do it:
wget -Nnv http://sitehere.com/install.sh && bash install.sh; rm -f install.sh
Breakdown:
-Nor--timestampingwill only download the file if it is newer on the server-nvor--no-verboseminimizes output, or-q/--quietfor no "wget" output at all&&will only execute the second command if the first succeeds- use
bash(orsh) to execute the script assuming it is a script (or shell script); no need tochmod +x rm -f(or--force) the file regardless of what happens (even if it's not there)- It's not necessary to use the
-Ooption withwgetin this scenario. It is redundant unless you would like to use a different temporary file name thaninstall.sh
Author by
amanada.williams
Updated on June 06, 2022Comments
-
amanada.williams 7 monthswget http://sitehere.com/install.sh -v -O install.sh; rm -rf install.shThat runs the script after download right and then removes it?