【发布时间】:2017-11-13 07:20:50
【问题描述】:
我正在尝试将以下代码放入一个循环中,在循环中一遍又一遍地运行,同时将 ./rundate????????.sh 增加 1 天
例如: 首先它运行“rundate20170101.sh” 其次它运行“rundate20170102.sh” .. .. .. .. 第十五次运行“rundate20170115.sh”
尝试让循环在 15 天后结束,然后转到下一个问题“你要运行补丁吗”
任何帮助将不胜感激。
谢谢!
yn() { echo -n "$1: "
while read -sN1 x ; do
x=${x,}
case $x in [yn]) break ;; *) : ;; esac
done
echo $x
[ $x = y ] ; }
yn "Do you want to install the new update? [Y/n]" || exit
./install.sh
echo "Pick a rundate file: "
select x in ./rundate????????.sh ; do $x ; break ; done
yn "Would you like to run the patch? [Y/n]" || exit
./patch.sh
只是为了澄清我试图让这个脚本从头到尾运行。然后循环回到起点,但将 .rundate2070101.sh 更改为 rundate20170102.sh 但在第一个循环后仍会询问其他问题。
如果这可以更好地用 perl 编写,我会喜欢一个例子!
【问题讨论】:
-
在shellcheck.net检查您的脚本