可以使用解释器选项-I来脱离脚本环境。
例如,在shell脚本中,使用命令read读取用户输入时,如果输入为空,则会认为stdin已经结束,并立即继续执行后续命令。但是,在命令行中直接使用read命令时,输入为空时read会等待用户输入非空字符。
因此,可以在脚本中使用-I选项,强制read命令从终端读取输入:
#!/bin/bash
read -r -d '' VAR << EOM
input
EOM
# Use -I option to force reading from terminal in script
read -r -d '' VAR << EOM
input
EOM -I
echo "$VAR"
在命令行中使用这个脚本,输入为空时,read命令将会等待用户输入,与在命令行中输入read命令的行为相同。
上一篇:不同名称的重复列