如何使用默认参数执行shell脚本

时间:2012-05-10 07:24:06

标签: bash makefile

我不确定标题是否解释了真正的问题。

我有一个使用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

1 个答案:

答案 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