This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
bash [2013/05/08 17:53] k2patel [Bash Tips / Tricks] |
bash [2020/08/10 02:35] (current) |
||
---|---|---|---|
Line 271: | Line 271: | ||
</code> | </code> | ||
+ | |||
+ | ==== Bash alias and complition ==== | ||
+ | Using command completion for alias in bash. | ||
+ | <code bash ~/.bash_profile> | ||
+ | alias c='/usr/bin/ssh' | ||
+ | export HLIST | ||
+ | HLIST=`cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\["` | ||
+ | HLIST="${HLIST} $(cat ~/.ssh/config | grep Host | awk '{print $2}' | grep -v \*)" | ||
+ | HLIST=$(echo ${HLIST} | sort | uniq) | ||
+ | complete -W "${HLIST}" c | ||
+ | </code> | ||
==== Control case ==== | ==== Control case ==== | ||
Line 366: | Line 377: | ||
=== Truth Table === | === Truth Table === | ||
- | In the if-then-else, exactly one of command2 or command3 will be executed. But in the && || version, command3 runs if either command1 or command2 returns false. | + | <code bash> |
+ | These two commands not the same: | ||
- | We can actually run through all four possibilities. Here's the command (I wonder whether this will get through unscathed?): | + | command1 && command2 || command3 |
+ | if command1 | ||
+ | then | ||
+ | command2 | ||
+ | else | ||
+ | command3 | ||
+ | fi | ||
+ | </code> | ||
+ | |||
+ | In the if-then-else, exactly one of command2 or command3 will be executed. But in the && || version, command3 runs if either command1 or command2 returns false. | ||
+ | |||
+ | <code bash> | ||
for c1 in true false; do for c2 in true false; do echo "$c1 && $c2 || c3"; (echo c1; $c1) && (echo c2; $c2) || echo c3; done; done | for c1 in true false; do for c2 in true false; do echo "$c1 && $c2 || c3"; (echo c1; $c1) && (echo c2; $c2) || echo c3; done; done | ||
+ | </code> | ||
And the output: | And the output: | ||
Line 389: | Line 413: | ||
c3 | c3 | ||
</code> | </code> | ||
+ | [[ http://www.linkedin.com/groups/Tuesdays-tip-difference-between-if-3716796.S.236851680?view=&srchtype=discussedNews&gid=3716796&item=236851680&type=member&trk=eml-anet_dig-b_pd-ttl-cn&ut=0FCRGmx_LdW5I1 | Link to Article ]] | ||
==== Networked Info ==== | ==== Networked Info ==== | ||