Я предпочитаю проверять наличие заданий перед их уничтожением - так скрипт не завершится, если ничего не запущено.
Кроме того, так короче набирать текст. Закиньте это в свой .bash_profile
:
function killjobs () {
JOBS="$(jobs -p)";
if [ -n "${JOBS}" ]; then;
kill -KILL ${JOBS};
fi
}
Затем выполните:
killjobs
Чтобы убить все запущенные задания.
Поскольку LOGIN
не была экспортирована как переменная среды, вы потеряли ее при входе в скрипт, поэтому скрипт попытался выполнить:
scp :dir/dir/file.txt.
вместо желаемого:
scp user@server::dir/dir/file.txt.
Кратчайшим "исправлением" будет:
export LOGIN
перед выполнением скрипта.
Заметьте также, что цитирование было бы лучше, как:
scp "$LOGIN":"$1" "$2"
так что scp
видит две независимые строки, а не одну.