如何在命令行中输入 bash 脚本,但在输入整个脚本之前不处理该脚本

如何在命令行中输入 bash 脚本,但在输入整个脚本之前不处理该脚本

我正在使用 HP 的 QuickTest Professional 和 Linux 执行一些交互式测试。我通过 SSH 连接并将 BASH 脚本行直接输入命令行。

我遇到的问题是脚本在输入时执行。我试图找到一种方法,可以将脚本输入到命令行,但保存执行,直到整个脚本完成。

有人有这方面的经验吗?我承认,这不是理想的做法,但这是我目前面临的情况。欢迎提出任何其他建议。

谢谢!

答案1

如果您确实无法将脚本文件写入系统,则可以将命令括在括号中:

 ( ls; echo this; echo that; )

同一交易,多行:

(
ls
echo this
echo that
)

答案2

如果你不想让脚本在子 shell 中执行,也可以将其括在花括号中:

{
echo one
echo two
}

另一种方法是将回声导入shbash

echo '
echo one
echo two
' | bash

或使用eval

eval '
echo one
echo two
'

编辑:

这也有效:

bash <<EOF
echo one
echo two
EOF

答案3

cat test.sh | ssh [email protected] '/bin/bash -'

但是,如果你能使用 ssh,你无论如何都能通过 SCP 上传完成的脚本吗?编辑一下,如果你不能通过 SCP 上传,你可以:

cat test.sh | ssh [email protected] 'cat > test.sh'

答案4

我看一下batch- 它几乎完全符合你的要求。

相关内容