User Tools

Site Tools


bash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
bash [2013/05/08 17:53]
k2patel [Bash Tips / Tricks]
bash [2019/08/21 21:26]
k2patel
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 ====
  
bash.txt · Last modified: 2020/08/10 02:35 (external edit)