我不确定标题是否解释了真正的问题。
我有一个使用load_config.sh
shell的shell脚本bash
。此脚本将加载配置。在开始加载配置之前,它会提示用户"Do you want to load all configurations? Y/N ?"
。如果用户选择“N”,则会执行不同的工作,并提示许多问题。
现在真正的问题是;我已添加此脚本以在Makefile中运行,如下所示。我的想法是在我说make install
时加载所有配置,但是脚本会提示用户。我现在不想要脚本提示,它应该采取默认'Y'并安装所有配置。我该如何实现这一目标?
.load_cfg.done : %
@echo -e "\n* Loading configuration $<"
$(PIN_HOME)/cfg/load_config.sh $<
touch $@
壳牌:BASH
操作系统:LINUX
答案 0 :(得分:4)
使用yes
命令,以便将某个字符串发送到用户提示符。
例如,假设您的脚本如下所示:
$ cat loadConfig.sh
#!/bin/bash
read -p "Load all configuration? " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "Loading all configuration"
else
echo "Not loading all configuration"
fi
将yes
传递到您的脚本中:
$ yes | loadConfig.sh
Loading all configuration