我正在使用 HP 的 QuickTest Professional 和 Linux 执行一些交互式测试。我通过 SSH 连接并将 BASH 脚本行直接输入命令行。
我遇到的问题是脚本在输入时执行。我试图找到一种方法,可以将脚本输入到命令行,但保存执行,直到整个脚本完成。
有人有这方面的经验吗?我承认,这不是理想的做法,但这是我目前面临的情况。欢迎提出任何其他建议。
谢谢!
答案1
如果您确实无法将脚本文件写入系统,则可以将命令括在括号中:
( ls; echo this; echo that; )
同一交易,多行:
(
ls
echo this
echo that
)
答案2
如果你不想让脚本在子 shell 中执行,也可以将其括在花括号中:
{
echo one
echo two
}
另一种方法是将回声导入sh
或bash
:
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
- 它几乎完全符合你的要求。