2017-06-11 5 views
0

私は、例えば1日シェルスクリプトのループ

で./rundate????????.shを向上させながら、それが何度も何度も走るループに以下のコードを取得しようとしています: まず、それは "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でうまく書かれている場合は、例が大好きです!

+0

あなたのスクリプトを[shellcheck.net](http://shellcheck.net)で確認してください – codeforester

答えて

0

あなたは、たとえばループ内で正規表現を使用することができます。

select x in (\.\/rundate)[0-9]+\.sh ; do $x ; break ; done 

はそれが役に立てば幸い。

+0

提案をありがとう。私はスクリプトをループで実行しようとしていましたが、実行するたびにrudate {date} .shを1ずつ増やします。 – connollyc4

関連する問題