HOWTO Trabalhar com PATH Envirment var no Linux Shell
Pequeno Script para estender PATH var com o diretório atual ou um determinado argumento
antes ou depois da PATH var atual
O Script está bem documentado, usando uma boa sintaxe do Shell para comentários
Chama-se Substituição e traz uma var em outro Escopo;)
como você vê, funciona bem, espero que ajude você a documentar melhor seus scripts
saudações
#!/bin/bash
###########
# Author: Frank Lemanschik
# Scriptname: pathadd
# Version: v1.2
# Last Modifyed: 14.04.2014#04:23 UCT
# URL:
# Usage: addpath [path]
# Notes: Replace [path] with /home/bla/project
# if none supplyed current workdir gets used
# returns: 0 if no error and 1 if error
###########
pathadd() {
## This Looks for the given /home/user like argument
## else auto use current directory
if [[ -z "$1" `# Check if argument is given like "/home/user/project"`]]; then
if [ "$1" = "after" `# try if argument is "after"`]; then
"2"="after" `# move after to $2`
fi
"1"=$PWD `# use current directory as argument`
fi
## Makes Save argument is a Directory and then adds it to begin of PATH
## if after is supplyed it gets added to the end of PATH
## and final shows summary or errors
if [ -d "$1" `# Check if directory exists and if it is a directory`]; then
if [[ ":$PATH:" != *":$1:"* `# check not already set in PATH ?`]]; then
if [ "$2" = "after" `# check if add after`] ; then
PATH=$PATH:$1
echo "Added: $1 after PATH"
return 0
else
PATH=$1:$PATH
echo "Added: $1 before PATH"
return 0
fi
else
echo "INFO: $1 Is Already in PATH"
return 0
fi
else
echo "Error: $1 Is not a Valid Directory"
return 1
fi
}
versão mais curta
se você gosta dele pequeno e nenhum verboso e tratamento de erros soa como grego para você?
pathadd() {
if [ -d "$1" ] &&[[ ":$PATH:" != *":$1:"* ]]; then
if [ "$2" != "after" ] ; then
PATH=$1:$PATH
else
PATH=$PATH:$1
fi
fi
}