#!/bin/bash # Copyright (C) 2016,2017 # Ole Tange and Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA GREPQ="grep >/dev/null 2>/dev/null" while test $# -gt 0; do key="$1" case $key in -i|--install) eval $GREPQ env_parallel.bash $HOME/.bashrc || echo '. `which env_parallel.bash`' >> $HOME/.bashrc eval $GREPQ env_parallel.zsh $HOME/.zshenv || echo '. `which env_parallel.zsh`' >> $HOME/.zshenv mkdir -p $HOME/.config/fish eval $GREPQ env_parallel.fish $HOME/.config/fish/config.fish || echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish eval $GREPQ env_parallel.ksh $HOME/.kshrc || echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc eval $GREPQ env_parallel.pdksh $HOME/.profile || echo '. `which env_parallel.pdksh`' >> $HOME/.profile eval $GREPQ env_parallel.csh $HOME/.cshrc || echo 'source `which env_parallel.csh`' >> $HOME/.cshrc eval $GREPQ env_parallel.tcsh $HOME/.tcshrc || echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc echo 'Installed env_parallel in: ' echo " " $HOME/.bashrc echo " " $HOME/.zshenv echo " " $HOME/.config/fish/config.fish echo " " $HOME/.kshrc echo " " $HOME/.profile echo " " $HOME/.cshrc echo " " $HOME/.tcshrc exit ;; *) echo "Unknown option: $key" ;; esac shift # past argument or value done cat <<_EOS env_parallel only works if it is a function. Do the below and restart your shell. bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc Supports: aliases, functions, variables, arrays zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh` E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv Supports: functions, variables, arrays fish: Put this in $HOME/.config/fish/config.fish: . (which env_parallel.fish) E.g. by doing: echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish Supports: aliases, functions, variables, arrays ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc Supports: aliases, functions, variables, arrays pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile Supports: aliases, functions, variables, arrays csh: Put this in $HOME/.cshrc: source `which env_parallel.csh` E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc Supports: aliases, variables, arrays with no special chars tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh` E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc Supports: aliases, variables, arrays with no special chars To install in all shells run: env_parallel --install For details: see man env_parallel _EOS