2017-01-09 2 views
0

Ich schreibe eine SH-Datei, um es über cron Jobs zu starten, aber ich habe keine Ahnung von Shell-Skript, ich möchte die Anzahl der Zeilen von mysql Abfrage dann teilen sie durch 200, ceil das Ergebnis und starten Sie eine Schleife von 0 auf diesen Betrag.Shell-Skript - mathematische Operationen und Schleifen

Nach einer langen Suche, schrieb ich diese Zeile, um die Anzahl der Zeilen von mysql Abfrage zu erhalten, und das funktioniert gut.

total=`mysql database -uuser -ppassword -s -N -e "SELECT count(id) as total FROM users"` 

aber alles, was ich von Google bekommen nicht hilft mir meine Arbeit zu vollenden, testete ich so etwas wie „expr“ und „lassen“ Methoden für mathematische Operationen, aber ich weiß nicht, warum nicht funktioniert.

Sogar Beispiele von Schleife, die ich bei Google gefunden nicht funktioniert.

Können Sie mir mit diesem Skript helfen?

+0

warum? Ich rate nur hier, aber haben Sie die Manpage für 'split' gelesen – Jasen

Antwort

0

Ich vermute, Sie verwenden Bash. Hier ist, wie Sie teilen:

#!/usr/bin/env bash 
# ^
# | 
# | 
# --> This should be at the top of your script to make sure you run Bash 

value=$((total/200)) # total => value returned from mysql 
for ((i = 0; i <= $value; i++)); do 
    # your code here 
done 

Stackoverflow hat eine erstaunliche Anzahl von Beispielen. Ich empfehle Ihnen, sich die Bash-Dokumentation hier anzuschauen: https://stackoverflow.com/tags/bash/info.

+0

Vielen Dank für den Hinweis, fügte ich diese erste Zeile und erhalten" nicht gefunden Fehler ", so kontaktierte ich meine Hosting-Firma und wusste, dass mein erster Code war richtig, aber nicht funktionierend Duo zu Sicherheitseinstellungen. Aber als eine wichtige Anmerkung funktioniert mein Code jetzt ohne diese erste Zeile. –

+1

Ich werde Ihre Antwort für Ihre Hilfe, den Hinweis und für den Arbeitscode akzeptieren. Danke, Mann. –

Verwandte Themen