scp : работает из командной строки, но cp: не может отследить ошибку сценария. Почему?

Я предпочитаю проверять наличие заданий перед их уничтожением - так скрипт не завершится, если ничего не запущено.

Кроме того, так короче набирать текст. Закиньте это в свой .bash_profile:

function killjobs () {
    JOBS="$(jobs -p)";
    if [ -n "${JOBS}" ]; then;
        kill -KILL ${JOBS};
    fi
}

Затем выполните:

killjobs

Чтобы убить все запущенные задания.

0
26.02.2019, 18:59
1 ответ

Поскольку LOGINне была экспортирована как переменная среды, вы потеряли ее при входе в скрипт, поэтому скрипт попытался выполнить:

scp :dir/dir/file.txt.

вместо желаемого:

scp user@server::dir/dir/file.txt.

Кратчайшим "исправлением" будет:

export LOGIN

перед выполнением скрипта.

Заметьте также, что цитирование было бы лучше, как:

scp "$LOGIN":"$1" "$2"

так что scpвидит две независимые строки, а не одну.

3
28.01.2020, 02:22

Теги

Похожие вопросы