Czasami łatwość z jaką można sobie podnieść komfort pracy jest zaskakująca. Zawsze przy testowaniu jakichś skryptów, najpierw tworzyłem katalog, przechodziłem do niego, potem otwierałem vi, potem zmieniałem uprawnienia i uruchamiałem skrypt. Za pomocą funkcji btouch dodanej do .bash_profile cztery czynności złożą się w jedną po wpisaniu takiej linii:
btouch ~/SampleDir/DirBelow/SampleScript.sh
Oczywiście można to zrobić też tak:
mkdir -p ~/SampleDir/DirBelow/ && cd ~/SampleDir/DirBelow/ && touch SampleScript.sh && chmod u+x SampleScript.sh && vi SampleScript.sh
Ale jak widać pisania jest znacznie więcej. Funkcja btouch:
btouch()
{
FULLPATH=$1
FILENAME=${FULLPATH##*/}
FILEEXTENSION=${FILENAME##*.}
BASEDIRECTORY=${FULLPATH%$FILENAME}
[ ! -d $BASEDIRECTORY ] && mkdir -p $BASEDIRECTORY
[ ! -f $FILENAME ] && touch $BASEDIRECTORY/$FILENAME
if [ $FILEEXTENSION = "sh" ] || [ $FILEEXTENSION = "py" ] || [ $FILEEXTENSION = "pl" ]; then
chmod u+x $BASEDIRECTORY/$FILENAME
fi
cd $BASEDIRECTORY
sub . $FILENAME
}
W ostatniej linii sub . $FILENAME, nie uruchamiam już vi, powoli przesiadam się na Sublime Text, który ma ogromne możliwości personalizacji.
Żeby polecenie btouch działało poprawnie trzeba jeszcze dodać poniższy alias do .bash_profile:
alias sub="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
Dzięki czemu Sublime Text będzie mógł być uruchamiany za pomocą polecenia sub np.
sub . - otwiera program w trybie przeglądania obecnego folderu

sub . SampleScript.sh - tak samo jak powyżej, dodatkowo otwiera plik do edycji

Po dodaniu funkcji i aliasu do .bash_profile należy go ponownie zaczytać np.
cd ~;. .bash_profile
albo uruchomić nowe okno terminala.