gpt4 book ai didi

bash - 斧头/bash : Calling the Bash `read` builtin from a Bash script run from the haxe `-cmd` option

转载 作者:行者123 更新时间:2023-11-29 09:49:58 26 4
gpt4 key购买 nike

我无法从 Haxe 的 -cmd 选项调用的脚本中成功调用 read

我正在为 Haxe 编写测试框架脚本,并希望能够通过一个命令测试多个目标。这个想法是清除编译到目标,清除终端,运行测试(并显示结果),等待按键,清除结果,编译到另一个目标,清除,运行,等待,清除等.

我在“等待按键”部分遇到了问题。我正在使用 Bash read 内置函数,如果我直接从终端运行脚本,它就可以正常工作。但是,当我使用 Haxe 的 -cmd 选项调用脚本时,read 不会打印它的提示或在按键后继续。

screenshot of the terminal after failure

我尝试将 bash 脚本编写为一系列 -cmd 命令,但它通过 sh 而不是 bash 运行,并且我收到错误“/bin/sh: 1: read : 非法选项 -n""错误:命令失败,错误 2"。

test.hxml - 手动调用 (haxe test.hxml)

-main   Main
-cp ../hxdf/

################################
--each

-neko ./neko/run.n
-cmd bash test.neko.sh

#-------------------------------
#--next

#-cpp ./cpp/
#-cmd bash test.cpp.sh

test.neko.sh

#!/bin/bash

clear

printf "compiled to neko - running\n\n"

neko ./neko/run.n

printf "\n"
read -n1 -s -r -p "press any key to continue"

clear

read 内置函数的行为不同,因为它是由 Haxe 编译器调用的。是否有一种方法可以将它移动到不同的进程,同时仍然影响我从中启动 Haxe 编译器的终端?

编辑:/bin/sh 错误仅在我将 test.hxml 设置为以下时发生:


-main Main
-cp ../hxdf/

################################
--each

-neko ./neko/run.n
-cmd clear
-cmd printf "compiled to neko - running\n\n"
-cmd neko ./neko/run.n
-cmd printf "\n"
-cmd read -n1 -s -r -p "press any key to continue"
-cmd clear

#-------------------------------
#--next

#-cpp ./cpp/
#-cmd bash test.cpp.sh

最佳答案

-cmd旗帜并不总是完美的。显然某些 shell 功能不适用于它(例如管道到文件“> ”,或这个 issue )

我建议您编写一个 Haxe 脚本来运行您的测试,例如未经测试的代码:

Sys.command('haxe test-neko.hxml');
Sys.getChar();
Sys.command('haxe test-cpp.hxml');
Sys.getChar();
// etc

关于bash - 斧头/bash : Calling the Bash `read` builtin from a Bash script run from the haxe `-cmd` option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54455944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com