0

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

我有一个load_config.sh使用bashshell 的 shell 脚本。此脚本将加载配置。在开始加载配置之前,它会提示用户"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

4

1 回答 1

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
于 2012-05-10T07:38:11.500 回答