Toon posts:

[BASH] optellen naar bestandsnaam

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik progranmmeer toch best vaak ik bash maar hier kom ik niet uit, tis vrij simpel denk ik:

dit heb ik al:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
clear
echo "hoeveel?"
read aantal

echo "je wilt er $aantal

until  [ i= aantal ]
do
 i= expr $i + 1
 touch bestandsnaam.$i
done

exit 0


maar het werkt niet. ik wil dus dat als je 3 als input geeft dat je er de bestanden
bestandsnaam.1
bestandsnaam.2
bestandsnaam.3
wordt gemaakt.

waarom werkt dit niet en hoe zou het wel werken?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 29-08 22:51

D2k

wat krijg je nu as uitvoer?

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
code:
1
2
3
./test: line 13: [: unary opertaion expected
1
2


en ik weet dat het em in de " i = expr $i + 1 " zit maar ik weet niet hoe het precies moet :(

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 29-08 22:51

D2k

$ weghalen?

Doet iets met Cloud (MS/IBM)


  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

code:
1
touch bestandsnaam.$1


dat moet vast $i ipv $1 zijn?

Verwijderd

Topicstarter
Poohbear schreef op 30 oktober 2002 @ 16:42:
code:
1
touch bestandsnaam.$1


dat moet vast $i ipv $1 zijn?
ja je hebt gelijk typ fout bij het overnemen van een ander scherm. gefixt

Verwijderd

Topicstarter
expr: non-numeric argument

dus ook niet. :?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 29-08 22:51

D2k

vind het gebruik van $i en i nogal inconsequent
of ligt dat aan mij?

Doet iets met Cloud (MS/IBM)


  • MyDyingBride
  • Registratie: November 2001
  • Laatst online: 01:39
code:
1
echo "je wilt er $aantal

Moet hier geen " achter ?

$i verhogen kan met
code:
1
((i++))

Als je bash versie 2.0.4 of hoger hebt.

En je moet voor de while loop $i vullen met de startwaarde.

Verwijderd

code:
1
2
3
4
5
6
7
8
9
echo -n "hoeveel? "
read aantal
echo "je wilt er $aantal"
i=0
until  [ $i -eq $aantal ];
do
        i=`expr $i + 1`
        touch "bestandsnaam.$i";
done

edit:
Let ook op het ontbreken van spaties bij de i=... assignments

Verwijderd

Topicstarter
jaja
code:
1
echo "je wilt er $aantal
moet een " achter, effe slorig overgetyped van mn linux-bak :)

ik heb 2.05b maar
code:
1
(($i++))
werkt niet.

Verwijderd

Topicstarter
Verwijderd schreef op 30 oktober 2002 @ 16:51:
code:
1
2
3
4
5
6
7
8
9
echo -n "hoeveel? "
read aantal
echo "je wilt er $aantal"
i=0
until  [ $i -eq $aantal ];
do
        i=`expr $i + 1`
        touch "bestandsnaam.$i";
done

edit:
Let ook op het ontbreken van spaties bij de i=... assignments
code:
1
2
./test: line 13: ]: too may arguments
expr $i + 1


en dat oneindig vaak :'(

Verwijderd

Probeer nu in godsnaam mijn code even, dan kan het topic dicht ipv. dit gemier :P ;)
edit:
En let op de backticks bij de expr! dus niet ' maar `
De code is getest en werkt, zelfs met sh ipv. bash

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
nog maar een voorbeeldje dan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
clear
echo -n "hoeveel? "
read aantal

echo "je wilt er $aantal"

for i in `seq 0 $aantal`; do
touch bestandsnaam.$i
done

exit 0


en let idd op de backticks ;)

Verwijderd

Topicstarter
ok ik zal het proberen :)

  • MyDyingBride
  • Registratie: November 2001
  • Laatst online: 01:39
Verwijderd schreef op 30 oktober 2002 @ 16:52:

ik heb 2.05b maar
code:
1
(($i++))
werkt niet.
Dat klopt, die $ mag er niet staan.

Verwijderd

Topicstarter
RdeTuinman schreef op 30 oktober 2002 @ 17:11:
nog maar een voorbeeldje dan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
clear
echo -n "hoeveel? "
read aantal

echo "je wilt er $aantal"

for i in `seq 0 $aantal`; do
touch bestandsnaam.$i
done

exit 0



ok bedankt deze heb ik gebruikt.
en let idd op de backticks ;)
Pagina: 1