Bash

From John Freier
Jump to: navigation, search

Keyboard Shortcuts

To send the current line to VIM for editing.

 ctrl+x ctrl+e

One line conditional

Both the following lines will write to the screen "false"

 [[ 1 == 0 ]] || echo "text"
 [[ 1 == 1 ]] && echo "text"


Check for environment variable

This will check to see if an variable is set

 if [[ -z "$var" ]]; then
   echo "var is not set"
 fi


Change the command prompt.

To change the command prompt, export the below value.

 export PS1=">"

or

 export PS1="${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)"


Alias

To find the command associated with an alias.

 type [alias_name]

To list all aliases, just type 'alias'.

 alias

To create an alias.

 alias myproject='cd /Users/jfreier/Projects/my_project'

Edit in VIM

To bring a command line in to VIM for editing

 ctrl+x ctrl+e

Echo commands

This will print all commands that are ran.

 set -x

To set the CD Path

 $CDPATH

Alternative Screen

This happens when you run a command a new screen appears and then is closed when done.

To turn this feature off.

 export LESS="-FRX"

This new screen is actually LESS and it just needs different flags.

Temporary Environment Variables for Scripts

If you have a script or command that uses environment variables, you can set one time variables be just prefixing the comment with the environment variable and command.

Example

echo_env_var.sh

 #!/bin/bash
 
 echo $JOHN_FREIER

Command

 # JOHN_FREIER=1 ./echo_env_var.sh

Exit script on error

To immediately exit a script when an error happens use the following command.

 set -e

Loop through argument variables.

This sniplet will loop through the arguments of a script.

 for var in "$@"
 do
 	echo "arg: $var"
 done

Previous command arguments

To the the arguments from the previous command.

 !^      first argument
 !$      last argument
 !*      all arguments
 !:2     second argument
 
 !:2-3   second to third arguments
 !:2-$   second to last arguments
 !:2*    second to last arguments
 !:2-    second to next to last arguments
 
 !:0     the command
 !!      repeat the previous line, good with sudo