• Ismertető
  • Hírek
  • Letöltés
  • Súgó
  • Tananyag
  • Közösség
  • Ubuntu Women
ubuntu.hu

Belépés

Mi az az OpenID?
  • Belépés OpenID használatával
  • OpenID belépés megszakítása
  • Felhasználó létrehozása
  • Elfelejtett jelszó

Facebook

Kapcsolat

  • Identi.ca csoport
  • Facebook oldal
  • IRC
  • Közösségi levlista
  • Segítői levlista
  • Magyar Ubuntu Planet
  • További elérhetőségek

Bash script - Beolvasás egy változóba STDIN-ról

2010. március 1. – 10.47 – mephisto
  • Leírások, dokumentációk

Hey!

Szeretnék írni egy egyszerűbb shell scriptet és ott leragadtam, hogy beolvassak 1 db karaktert. Szval a script a felhasználótól 1 karaktert (számot) várjon.
A read -n 1 nagyon jól működik, a terminálban, de amikor scriptben is megírom akkor azt kapom, hogy
read: 4: Illegal option -n

Előre is kösz a segítséget!

‹ Full Circle Magazin Bash script - Beolvasás egy változóba STDIN-ról ›
  • A hozzászóláshoz regisztráció és belépés szükséges
Gorkhaan – moderátor – 2010. március 1. 11.16

#!/bin/bash

echo -n "Kérem a Bemenetet: "; read -e IDE

echo $IDE

De paraméterekkel is megoldható:

#!/bin/bash

if [ $# -ne 1 ]; then
echo -e "$0 usage: parameter1"
exit
fi

PARAMETER="$1"

echo $PARAMETER

  • A hozzászóláshoz regisztráció és belépés szükséges

||"Ha előre tudtad volna, hogy a gyertya lángja tűz, akkor már régen kész lenne az étel..." || My Homepage = Hasznos tippek & Trükkök

mephisto – 2010. március 3. 16.08 – előzmény

Hali!

Bocs, hogy eddig nem írtam csak nem tudtam géphez jutni.
Szval

#!/bin/bash
echo -n "Kérem a Bemenetet: "; read -e IDE
-nál
Illegal option -e

És próbáltam egy file existet is csinálni, de ott sem működnek a dolgok úgy ahogy kellene nekik pedig szóról szóra követtem a tutorialt. Még az ott leírtak sem működött ctrl+c ctrl+v-vel.

#!/bin/bash
read -p "Enter a password" pass
if test "$pass" == "jerry"
then
echo "Password verified."
fi

Terminal:
Enter a passwordjerry
test: 6: jerry: unexpected operator

  • A hozzászóláshoz regisztráció és belépés szükséges

 

Gorkhaan – moderátor – 2010. március 3. 16.30 – előzmény

Bash shell kell mindenképp

bash 1.sh

Elágazásod meg nem jó, mivel lehagytad a szögletes zárójeleket. Meg minek oda a "test" ?

Amiket leírtam működik, kipróbálva írtam neked.

  • A hozzászóláshoz regisztráció és belépés szükséges

||"Ha előre tudtad volna, hogy a gyertya lángja tűz, akkor már régen kész lenne az étel..." || My Homepage = Hasznos tippek & Trükkök

nortai – 2010. március 5. 10.13 – előzmény

"test" maga a szögletes zárójel, csak így is lehet használni: [ feltétel ]
Bár nekem mindkét módszerrel működik... Szóval érthetetlen.

Esetleg még így:
#!/bin/bash
echo -n "Enter a password: "
read "pass"
if [ "$pass" == "jerry" ]
then
echo "Password verified."
fi

  • A hozzászóláshoz regisztráció és belépés szükséges

| Aham ühüm hát persze! | twitter | fejlesztés alatt... (new) | Minus (10GB ingyen tárhely)

simzer – 2010. március 5. 19.54 – előzmény

Szerintem karakterkódolási probléma lesz. Ne másold be a szkriptet, hanem gépeld be.

  • A hozzászóláshoz regisztráció és belépés szükséges

 

maat – ubuntu.hu szerkesztő – 2010. március 6. 23.35 – előzmény

Szerintem valamiért nem a bash builtin test-et használod, és ott bezavar, hogy elvileg = az operátor neve – ezek szerint a bash elfogadja az ==-t is, de a /usr/bin/test (és a /usr/bin/[) nem tesz így. Mit ír ki a szkriptedben egy type [?

Ugyanaz lehet a read baja is: az is shell builtin (nálam nincs belőle alternatív verzió, de például bash, sh és dash readje nem ugyanaz). Ubuntu és Debian alatt a /bin/sh egy dash symlink, az interaktív login shell pedig bash.

  • A hozzászóláshoz regisztráció és belépés szükséges

 

Hozzászólás-megjelenítési lehetőségek

A választott hozzászólás-megjelenítési mód a „Beállítás” gombbal rögzíthető.
© 2007–2011. Magyar Ubuntu Közösség.
Az Ubuntu a Canonical bejegyzett védjegye.
Az ubuntu.hu az fsf.hu kiszolgálóin fut.