Wygląda na to, że skrypt jest napisany w bashu (choćby użycie shopt) a próbujesz/system próbuje odpalić go jako skrypt sh (pod bashem błąd source wygląda inaczej, pod sh - tak jak w twoim przykładzie).
Upewnij się, że pierwsza linijka skryptu ma dokładnie postać, bez niczego przed, bez niczego powyżej.
#!/bin/bash
... reszta skryptu
Ok
Większy kawałek.
Ale jest bin/sh
#!/bin/sh
# wersja z 2009.02.25
BAZY=/var/lib/firebird/data
KOPIE=/server/kopie-pcb
MAILTO=
FB_PASS=/etc/firebird/2.1/SYSDBA.password
[ ! -r $FB_PASS ] && exit
source $FB_PASS && export ISC_USER ISC_PASSWORD
#source /etc/default/locale && export LANG
#umask 0027
LOCKFILE=/var/lock/local-pcbbackup
if [ -x /usr/bin/lockfile-create ]
then
if ! LOCK=`lockfile-create $LOCKFILE &> /dev/null || lockfile-create --retry 1 $LOCKFILE &> /dev/null`
then
[ -z $MAILTO ] || echo $LOCK $LOCKFILE | mail -s "[UWAGA] poprzednia kopia baz ciagle sie robi" $MAILTO
exit
fi
lockfile-touch $LOCKFILE &
LOCKTOUCHPID="$!"
fi
[ -d $KOPIE ] || mkdir $KOPIE
rm -f $KOPIE/*.gdb $KOPIE/*.gbk $KOPIE/*.gfix $KOPIE/*.gbr $KOPIE/*.ngdb $KOPIE/*.rst
shopt -qs nullglob
for BAZA in $BAZY/[[:alnum:]]*.gdb
Linijka będzie brzmiała dosłownie (nie przekręć żadnego znaku, nie dodawaj żadnych spacji):
export PATH=/opt/firebird/bin:$PATH
Możesz dodać ją na przykład do pliku .profile w katalogu domowym użytkownika, który ma mieć dostęp do tych aplikacji.