平台:Raspberry Pi 3 B
请帮助我,git pull仅在最后一条命令有效,但我需要更早使用。这对我来说很奇怪,我没有找到任何解决办法
script.sh
#!/bin/bash
echo Hello World
git pull
sh script.sh给出:
Hello World
Already up-to-date.
script.sh
#!/bin/bash
echo Hello World
git pull
echo Hello World
sh script.sh给出:
Hello World
' is not a git command. See 'git --help'.
Did you mean this?
pull
Hello World
答案 0 :(得分:3)
文件的EOL格式(CRLF)错误。 CRLF是来自Windows应用程序上编写的文本文件的格式。 * NIX使用LF作为EOL分隔符,因此您的解释器在每一行的内容中都得到了一个奇怪的字符(CR),并将其作为您调用的命令的一部分传递给git ...这就是为什么它会中断的原因。运行dos2unix script.sh
进行转换,以便可以正确读取。
答案 1 :(得分:0)
除了脚本中的引号或特殊字符外,没有其他原因。实际上,根据错误消息,它将Hello World
视为git命令。
这就像你在说:
[vturlapati:~] $ git Hello World
git: 'Hello' is not a git command. See 'git --help'.
The most similar command is
reflog
[vturlapati:~] $ git 'Hello World'
git: 'Hello World' is not a git command. See 'git --help'.
您可以仔细检查特殊字符吗?如果您使用的是vim,则可以执行:set list