我有一个java program
我正在从标准输入读取
BufferedInputStream bis = new BufferedInputStream(System.in);
byte[] b = new byte[1];
int cmd = bis.read(b);
System.out.println("Read command: " + new String(b));
和一个shell script
启动停止这个程序
'start')
if [ -p myfifo ]; then
rm myfifo
rm myfifo-cat-pid
fi
mkfifo myfifo
cat > myfifo &
echo $! > myfifo-cat-pid
java -jar lib/myJar.jar >/dev/null 2>&1 0<myfifo &
echo `date +%D-%T` $! >> process.pid
echo "Started process: "$!
;;
'stop')
echo 0 > myfifo
echo "Stopped process: "
rm myfifo
;;
当我在开始时一一运行命令时,程序会一直等到我在 fifo 上回显。但是当我从 .sh 文件运行它时,它会立即从标准输入中读取。不明白如果直接在命令提示符下运行命令与我创建一个 .sh 文件然后运行它有什么区别