在bash脚本中定义“ PATH”变量时出现scp错误

时间:2019-06-11 14:12:01

标签: bash variables path scp

这是我的脚本

#!/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 个答案:

答案 0 :(得分:3)

之所以发生这种情况,是因为PATH是一个系统变量,它定义了应在其中查找程序和脚本的目录。您可以通过执行echo $PATH来查看其值。在脚本中,您将PATH设置为/SomeFolder/file2.txt,因此找不到通常位于scp中的程序/usr/bin/。只需将脚本中的变量PATH的名称更改为其他名称即可。