diff options
Diffstat (limited to 'bash.html.markdown')
| -rw-r--r-- | bash.html.markdown | 24 | 
1 files changed, 21 insertions, 3 deletions
| diff --git a/bash.html.markdown b/bash.html.markdown index 191f916a..f3c9cccc 100644 --- a/bash.html.markdown +++ b/bash.html.markdown @@ -83,24 +83,33 @@ echo Hello, $Name!  # We have the usual if structure:  # use 'man test' for more info about conditionals -if [ $Name -ne $USER ] +if [ $Name != $USER ]  then      echo "Your name isn't your username"  else      echo "Your name is your username"  fi +# NOTE: if $Name is empty, bash sees the above condition as: +if [ != $USER ] +# which is invalid syntax +# so the "safe" way to use potentially empty variables in bash is: +if [ "$Name" != $USER ] ... +# which, when $Name is empty, is seen by bash as: +if [ "" != $USER ] ... +# which works as expected +  # There is also conditional execution  echo "Always executed" || echo "Only executed if first command fails"  echo "Always executed" && echo "Only executed if first command does NOT fail"  # To use && and || with if statements, you need multiple pairs of square brackets: -if [ $Name == "Steve" ] && [ $Age -eq 15 ] +if [ "$Name" == "Steve" ] && [ "$Age" -eq 15 ]  then      echo "This will run if $Name is Steve AND $Age is 15."  fi -if [ $Name == "Daniya" ] || [ $Name == "Zach" ] +if [ "$Name" == "Daniya" ] || [ "$Name" == "Zach" ]  then      echo "This will run if $Name is Daniya OR Zach."  fi @@ -121,6 +130,15 @@ ls -l # Lists every file and directory on a separate line  # .txt files in the current directory:  ls -l | grep "\.txt" +# Since bash works in the context of a current directory, you might want to  +# run your command in some other directory. We have cd for changing location: +cd ~    # change to home directory +cd ..   # go up one directory +        # (^^say, from /home/username/Downloads to /home/username) +cd /home/username/Documents   # change to specified directory +cd ~/Documents/..    # still in home directory..isn't it?? + +  # You can redirect command input and output (stdin, stdout, and stderr).  # Read from stdin until ^EOF$ and overwrite hello.py with the lines  # between "EOF": | 
