这是我的脚本
#!/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
。
答案 0 :(得分:3)
之所以发生这种情况,是因为PATH
是一个系统变量,它定义了应在其中查找程序和脚本的目录。您可以通过执行echo $PATH
来查看其值。在脚本中,您将PATH
设置为/SomeFolder/file2.txt
,因此找不到通常位于scp
中的程序/usr/bin/
。只需将脚本中的变量PATH
的名称更改为其他名称即可。