ошибка scp при определении переменной «PATH» в скрипте bash - PullRequest
0 голосов
/ 11 июня 2019

Так что это мой сценарий

#!/bin/bash
PATH=/SomeFolder/file2.txt;     
scp -3 user@server1:/SomeFolder/file.txt user@server2:$PATH;

Я получаю эту ошибку

main.sh: строка 3: команда scp: не найдена

Если я поставлю /SomeFolder/file2.txt вместо "$PATH", он все равно не будет работать - та же ошибка. Это работает только после того, как я удалю всю вторую строку (определение PATH).

Я упростил свой сценарий, PATH определяется выполнением сценария на другом сервере, но это не имеет значения. Я проверил это так, как вы видите, и пришел к выводу, что ошибка связана с тем, что PATH определяется в первую очередь.

1 Ответ

3 голосов
/ 11 июня 2019

Это происходит потому, что PATH - системная переменная, определяющая каталоги, в которых следует искать программы и сценарии. Вы можете просмотреть его значение, выполнив echo $PATH. В вашем скрипте вы устанавливаете PATH на /SomeFolder/file2.txt, поэтому программа scp, которая обычно находится в /usr/bin/, не может быть найдена. Просто измените имя переменной PATH в вашем скрипте на другое.

...