Avatar billede w13 Novice
14. april 2015 - 12:29 Der er 6 kommentarer og
1 løsning

CMD: Brugerinput inden 5 sekunder

Hej Eksperter

Jeg forsøger at lave et simpelt .cmd-script, som beder brugeren indtaste en værdi, inden der er gået 5 sekunder.

Min kode:

-----------

#!/bin/bash
# This script will test if you have given a leap year or not.

echo "Type the year that you want to check (4 digits), followed by [ENTER]:"

read -t 5 year

if (( ("$year" % 400) == "0" )) || (( ("$year" % 4 == "0") && ("$year" % 100 !=
"0") )); then
  echo "$year is a leap year."
else
  echo "This is not a leap year."
fi

-----------

Fejlen:

-----------

'#!' is not recognized as an internal or external command,
operable program or batch file.
'#' is not recognized as an internal or external command,
operable program or batch file.
"Type the year that you want to check (4 digits), followed by [ENTER]:"
'read' is not recognized as an internal or external command,
operable program or batch file.
("$year" was unexpected at this time.

-----------

Kan I hjælpe?
På forhånd tak!

Med venlig hilsen
Tobias
Avatar billede claes57 Ekspert
14. april 2015 - 14:22 #1
logikken i
if (( ("$year" % 400) == "0" )) || (( ("$year" % 4 == "0") && ("$year" % 100 !=
"0") ))
holder ikke.
det skal være noget som
hvis year mod 4 så (
  hvis year mod 100 så (
    hvis year mod 400 så (
      skudår
    ellers //ikke mod 400 men mod 100
      ikke skudår)
  ellers //ikke mod 100 men mod 4
    skudår)
ellers // ikke mod 4
  ikke skudår)
så du skal spørge på mindste tal først.
Avatar billede w13 Novice
14. april 2015 - 15:22 #2
Hej Claes57

Tak for dit svar.

I virkeligheden er jeg nok ude efter at rette i koden, så der er én if-sætning, der kun køres, hvis brugeren har nået at indtaste noget.

Er det ladesiggørligt? :-/

Mvh. Tobias
Avatar billede claes57 Ekspert
14. april 2015 - 16:25 #3
udenom din nuværende if sætter du en, der tester på, og der er noget i year, fx

if ($year !="") then
  din if kode
end if

så springer den over hvis year er tom.
Avatar billede w13 Novice
14. april 2015 - 16:32 #4
Jeg forsøger, tak. :)
Avatar billede claes57 Ekspert
14. april 2015 - 16:35 #5
du er på linux? eller se fx http://win-bash.sourceforge.net/
Avatar billede w13 Novice
19. april 2015 - 16:37 #6
Hej igen

Jeg er på Windows.

Min kode er nu:

echo "Type the year that you want to check (4 digits), followed by [ENTER]:"

read -t 5 year

if ($year !="") then
    echo "Hej"
else
    echo "Nej"
end if

pause

Men jeg får fejlen:

'read' is not recognized as an internal or external command,
operable program or batch file.
!="") was unexpected at this time.

Den lader slet ikke til at forstå read-kommandoen. :-/
Avatar billede w13 Novice
12. august 2015 - 08:47 #7
Fik det aldrig til at virke. Men opret gerne et svar, Claes57, så vanker der point! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester