错误“命令名无效\”/usr/bin/perl\”在期望脚本中

发布于 2024-12-26 07:44:06 字数 364 浏览 1 评论 0原文

我正在尝试将一行 perl 命令添加到期望脚本中。

出于本线程的目的,我将脚本精简为 2 行:

#!/usr/bin/expect -f

/usr/bin/perl -i -pe 's/\015/\012/g' 'test.txt'

如果我仅在终端 (Mac) 中执行 perl 行,则它运行良好。但是,我的期望脚本产生错误

 error "invalid command name \"/usr/bin/perl\"

“我是 shell 脚本的新手”。希望这是一个简单的解决方案,但期望文档在网络上似乎很少。

我的另一个选择是将两个脚本分开。

I'm trying to add a one line perl command in to an expect script.

For purposes of this thread, I've boiled my script down to 2 lines:

#!/usr/bin/expect -f

/usr/bin/perl -i -pe 's/\015/\012/g' 'test.txt'

If I execute just the perl line in the Terminal (Mac), it runs fine. However, my expect script yields the error

 error "invalid command name \"/usr/bin/perl\"

I am a novice at shell scripts. hopefully this is an easy solution, but expect documentation seems sparse on the web.

My other option is to just keep the 2 scripts separate.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光暖心i 2025-01-02 07:44:06

Expect 是 Tcl 的超集。您需要的是 exec 命令。要在子 shell 中执行命令并存储结果,您可以使用如下结构:

set result [exec /usr/bin/perl -i -pe 's/\015/\012/g' test.txt]

Expect is a superset of Tcl. What you need is the exec command. To execute your command in a subshell and store the result, you would use a construct like this:

set result [exec /usr/bin/perl -i -pe 's/\015/\012/g' test.txt]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文