【问题标题】:scp error when defining a "PATH" variable in a bash script在 bash 脚本中定义“PATH”变量时出现 scp 错误
【发布时间】:2019-06-11 14:12:01
【问题描述】:

这是我的脚本

#!/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

【问题讨论】:

  • 这就是为什么你不应该在你的脚本中使用大写的变量名。这些通常是为环境变量保留的,通常会对其他程序产生影响。

标签: bash variables path scp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2016-08-19
    相关资源
    最近更新 更多