У меня проблемы с успешным вызовом read
из скрипта, вызываемого опцией Haxe -cmd
.
Я пишу среду тестирования для Haxe и хочу иметь возможность тестировать несколько целей из однойкоманда.Идея состоит в том, чтобы очистить, скомпилировать с целью, очистить терминал, запустить test / s (и отобразить результаты), дождаться нажатия клавиши, очистить результаты, скомпилировать с другой целью, очистить, запустить, подождать, очистить и т. Д..
Я столкнулся с проблемой «ожидание нажатия клавиши».Я использую встроенную Bash read
, и если я запускаю скрипт прямо из терминала, он работает нормально.Но когда я вызываю скрипт, используя опцию Haxe -cmd
, read
не печатает подсказку или не продолжает после нажатия клавиши.
Я попытался написатьСценарий bash представляет собой серию команд -cmd
, но вместо bash он запускается через sh, и мне выдаются ошибки "/ bin / sh: 1: read: Illegal option -n" "Error: Команда завершилась с ошибкой 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?
EDIT: Ошибка /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