Array mit nur einer geraden Anzahl
for X in {18..2500} ;
ist eine Zeile des Skripts, was bedeutet, dass die pick-Nummer-eins nach dem anderen, wie: 18,19,20,21,22,23....bis 2500
Aber ich finde ich brauche nur noch Nummer jetzt: 18,20,22,24.....2500
Dann, was soll ich tun, durch eine leichte ändern der Zeile?
Dank
Bearbeiten:
Es ist bash...
Mein script lautet jetzt:
#!/bin/bash
TASK=1101;
NUM=9;
TEND=1100;
for X in {18..2500};{
if (X % 2 == 0);
do
echo "$X echo \"Wait until $NUM job is done\" $NUM" ;
NUM=$((NUM+2)) ;
X=$((X+1)) ;
TEND=$((TEND+100)) ;
echo "$X -t $TASK-$TEND jobs.sh" ;
TASK=$((TASK+100)) ;}
done
bekam aber Fehler, wie:
Zeile 15: syntax error near unexpected token `do'
- Welche Programmiersprache?
- könnten Sie einige weitere code-Beispiel? Das snippet, das Sie gab, könnte verwendet werden, um viele verschiedene Dinge.
- Die
for
Aussage ist nicht C, aber sieht aus wie es sein könnte, Python? - sieht aus bash zu mir.
- Suche bei OP ' s Fragen, könnte es sein, entweder Python oder bash.
- Das ist C++? Wow, die Sprache scheint zu haben, viel verändert, seit ich es benutzt habe.
- dies ist kein Gültiger code in python, und es ist definitiv nicht C++.
- Ich fixierte ihn ein bisschen, es ist nicht c++ und hat nichts zu tun mit arrays.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht C++. Dies ist ein bash-Skript.
Ihre
for
-loop starten muss, um mit einemdo
:Ihre
if
-Anweisung syntax sieht aus. Es sollte wohl so etwas sein, beachten Sie diethen
:if
-Blöcke enden mit:Und die
for
-do
block endet mit:Besser noch... tun, Weg mit der
if
- Anweisung und verwenden die Bash istfor
-Schleife konstruieren zu generieren, nur noch Nummern:$(( ... ))
einfache Variablen müssen nicht ein$
:$(( x % 2 ))
Können Sie die Inkrement:
Oder
bash --version
?Versuchen Sie den modulo-operator. In fast allen Sprachen, es wird in etwa so Aussehen:
Gültigen C-code, kann aber leicht auf andere Sprachen.
Kann man sich den mod-operator als Divisionszeichen in der gleichen Position, aber anstelle der Rückgabe das Ergebnis der division liefert den Rest. Daher ist in diesem code, wenn der Rest einer Division durch zwei 0 ist, dann teilt es gleichmäßig von beiden, und so ist es auch per definition.
Wenn Ihre Sprache hat eine
for(;;)
- syntax können Siefor (( x=18; x<=2500; x+=2 )); do ...; done
Gibt es ein paar Dinge, die Sie tun können:
für x in {18..2500} {
if (x mod 2=0) {
etwas tun;}
für x in {18..2500} Schritt 2 {
etwas tun;}