これはおそらく非常に簡単ですが、コンソールで一度コマンドを記述し、実行n
時間をn
指定して、実行時に指定する簡単な方法はありますか?このようなもの:
repeat 100 echo hello
そのようなコマンドは存在しますか(典型的なLinuxインストールを想定していますか)?
または、bashで何らかのループを行うために書くでしょうか?
これはおそらく非常に簡単ですが、コンソールで一度コマンドを記述し、実行n
時間をn
指定して、実行時に指定する簡単な方法はありますか?このようなもの:
repeat 100 echo hello
そのようなコマンドは存在しますか(典型的なLinuxインストールを想定していますか)?
または、bashで何らかのループを行うために書くでしょうか?
回答:
はい、これは可能です。Bashには非常に広範なスクリプト言語があります。この場合:
for i in {1..100}; do echo 'hello'; done
その他のループ例:http : //www.cyberciti.biz/faq/bash-for-loop/
完全なbashリファレンス:http : //www.gnu.org/software/bash/manual/bashref.html
for i in {1..100}; do python3 foo.py ; done
実際に実行時間を取得することを試みました(どれくらいの速さを確認する)time for i in {1..100}; do python3 foo.py ; done
と、CTRL-Cはループを停止できません
または、bashで何らかのループを行うために書くでしょうか?
はい、あなたはこのようにしたいと思います:
for(( i = 0; i < 100; i++ )); do echo "hello"; done
または、より短い:
for((i=100;i--;)); do echo "hello"; done
この仕事をするための「標準の」Linuxツールは見つかりませんでしたが、通常、インストールからインストールまでドットファイル(.bashrc、.vimrcなど)を保存します。新規インストールでドットファイルを保存する観点:
.bashrcまたは.bash_aliasesの最後に、次の定義を追加します。
repeat() {
n=$1 #gets the number of times the succeeding command needs to be executed
shift #now $@ has the command that needs to be executed
while [ $(( n -= 1 )) -ge 0 ] #loop n times;
do
"$@" #execute the command; you can also add error handling here or parallelize the commands
done
}
ファイルを保存して、既存のシェルでシェルを再度開くsource /path/to/.bashrc
かsource /path/to/.bash_aliases
、またはを選択して、変更を選択します。
それでおしまい!次の方法で使用できるはずです。
repeat 100 echo hello
repeat 84 ~/scripts/potato.sh
等