Random Code 7: sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ] then /usr/bin/env ZSH=$ZSH zsh $ZSH/tools/check_for_upgrade.sh fi # Initializes Oh My Zsh # add a function path fpath=($ZSH/functions $ZSH/completions $fpath) # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore for config_file ($ZSH/lib/*.zsh) source $config_file # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists, or else we will use the default custom/ if [[ -z "$ZSH_CUSTOM" ]]; then ZSH_CUSTOM="$ZSH/custom" fi is_plugin() { local base_dir=$1 local name=$2 test -f $base_dir/plugins/$name/$name.plugin.zsh \ || test -f $base_dir/plugins/$name/_$name } # Add all defined plugins to fpath. This must be done # before running compinit. for plugin ($plugins); do if is_plugin $ZSH_CUSTOM $plugin; then fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) elif is_plugin $ZSH $plugin; then fpath=($ZSH/plugins/$plugin $fpath) fi done # Load and run compinit autoload -U compinit compinit -i # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH/plugins/$plugin/$plugin.plugin.zsh fi done # Load all of your custom configurations from custom/ for config_file ($ZSH_CUSTOM/*.zsh) source $config_file # Load the theme if [ "$ZSH_THEME" = "random" ] then themes=($ZSH/themes/*zsh-theme) N=${#themes[@]} ((N=(RANDOM%N)+1)) RANDOM_THEME=${themes[$N]} source "$RANDOM_THEME" echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..." else if [ ! "$ZSH_THEME" = "" ] then if [ -f "$ZSH/custom/$ZSH_THEME.zsh-theme" ] then source "$ZSH/custom/$ZSH_THEME.zsh-theme" else source "$ZSH/themes/$ZSH_THEME.zsh-theme" fi fi fi |
Shell scripting! “Shell” is the fourth most popular language on github, and this is the most-forked project, “oh my zsh”.
Interestingly, shell scripts actually have a number of features in common with some recent programming languages. In particular, they typically feature lazy evaluation, and they have nice foreach loops.
They don’t really have values, per se, which is interesting; the commands have output that can be piped into other commands, but the values of the language are basically just strings. Well, okay, I suppose strings are values. How do you capture the output of a program as a string? I should know that.
They’re also heavily tied to the notion that each line is its own statement, following the lead of Ruby (and Python?).
There are even function definitions!