In addition to my own computer, I sometimes use an Ubuntu cluster at my school. Rather than manually keep my .bashrc's in sync, I would like to make the school cluster's .bashrc source my personal .bashrc from DropBox via a URL. However, when I naively try source http://myurl, I just get an error: http://myurl: No such file or directory. How can I can get bash to source from a script located online?

Worst case, I could curl to a named pipe and source that. Is there anything more elegant?

link|improve this question

feedback

2 Answers

up vote 1 down vote accepted

You can use process substitution with source:

source <(curl http://example.com/foo)

Note: I consider directly running code retrieved over the internet to be a serious security risk. It's probably less risky if this is done over an internal network (depending on its overall security).

link|improve this answer
Clever! Good point though that an attacker could easily feed me any code they want. – Jon Rodriguez Mar 9 '11 at 14:49
feedback

Can't you just use

curl http://example.com/whatever.sh | bash 
link|improve this answer
That works and it's what I'm currently doing, but I was wondering if there's a more elegant way. But maybe this is the best, so if nothing turns up soon I'll accept your answer. – Jon Rodriguez Mar 9 '11 at 14:12
Also, note that this is going in my .bashrc, so technically your solution is infinite recursion. ;) But I know what you meant. – Jon Rodriguez Mar 9 '11 at 14:45
1  
Piping commands to bash will execute them in a separate process, which makes this method unusable for executing bashrc. – grawity Mar 9 '11 at 15:15
Depends on what the commands are - but yes, sorry I agree – John Burton Mar 9 '11 at 16:24
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.