我用ssh连接到很多Linux服务器,并在每个服务器上运行健康检查脚本,想在这样做时为每个服务器节省2秒。 因此,而不是通常创建脚本文件:
cat > test.sh
+
right-click paste(whole script file -copied from notepad)
+
ctrl+c
我右键单击粘贴:这里有带有整个脚本的文档(复制的记事本):
cat <<'EOF' > test.sh
#!/bin/bash
commands..
commands..
EOF
Aprox 50% 次脚本在像这样粘贴时会损坏。 损坏发生在随机行/行上(部分行丢失,某些字符丢失等),这会导致脚本运行时语法错误,其他 50% 次脚本粘贴正常并且可以正常运行。
问题绝对不在于脚本本身。 当它>文件名方式复制 cat 时,它可以 100% 工作。 从中复制文本的记事本使用 UNIX - LF EOL 转换,但切换到 Windows CRLF 类型时也会发生这种情况。 脚本内部没有制表符,只有空格也限制字符串在自身之前没有前导空格
脚本有 430 行长,这可能是个问题吗? 我已经在其他一些 bash 脚本中或直接在终端中使用相同的语法一段时间了,但从未遇到过这种行为。
有人知道是什么原因造成的吗?还是可能的解决方法?
按照此处的建议尝试
ssh remoteuser@ip.address.of.server 'bash -s' < scriptfile.sh