我用#!
在J for linux中编写脚本但是脚本挂了。 Control-D脚本回显输入值后。但普通的ENTER只将光标放在新行上。
#!/path/jconsole
a =. 1!:1]3
echo a
exit ''
答案 0 :(得分:3)
当j处于脚本模式时,您无法读取单行文本,但是您可以通过将{immex短语设置为9!:27
来安排在下次j返回到立即执行模式时运行的内容然后使用9!:29
将immex位设置为1。这是一个例子:
#!/usr/bin/env j
NB. demo showing how to make a simple repl in j.
readln =: [: (1!:01) 1:
donext =: [: (9!:29) 1: [ 9!:27
main =: verb define
echo ''
echo 'main loop. type ''bye'' to exit.'
echo '--------------------------------'
while. (s:'`bye') ~: s:<input=:readln'' do.
echo ".input
end.
echo '--------------------------------'
echo 'loop complete. returning to j.'
NB. or put ( exit'' ) here to exit j.
)
donext 'main _'
答案 1 :(得分:2)
问题是(1!:1)&3
读到文件结束&#34;。在Linux中,按ctrl-D发送EOF信号。
如果这不是您正在寻找的东西,我恐怕除此之外没有其他东西,只有你的丑陋技巧&#34;
a=. shell 'read foo; echo -n $foo'
as(1!:1)&amp; 1仅在会话期间出于某种原因...