我有一个 shell 脚本,提示用户手动输入(例如1
& enter
、2
&enter
等)。我想通过在执行时将预定义参数传递给脚本来自动执行此过程,这可能吗?例如 。如何做到这一点?
例子:
- 运行脚本:
bash <(curl -s -L domain.com/myscript.sh)
- 等待 1 秒
- 输入
1
并enter
- 等待1秒
- 输入
2
并enter
感谢任何帮助
答案1
如果你的 bash 函数或脚本接受一个参数,可以按照以下方法为其赋予默认值:
VAR=${1:-DEFAULTVALUE}
这将为 VAR 分配第一个参数的值,如果未指定,则使用 DEFAULTVALUE。请注意冒号和破折号字符。
下面是一个函数示例,它启动一个从当前目录提供服务的简单 HTTP 服务器,并带有用于监听的端口的可选参数,默认为 8000:
function server() {
local port="${1:-8000}"
python -m SimpleHTTPServer "$port"
}
答案2
您可以像这样通过管道传输命令的标准输入:
echo '1\n2' | <command>