přejít na obsah přejít na navigaci

Linux E X P R E S, Seriál o Bashi

Seriál o Bashi

manman.png

Bohdan Milar sestavil průvodce BASHem, tedy prostředím, které mnoho uživatelů nesnáší a nepotřebuje a mnoho si bez něj neumí představit svou práci nebo zábavu. První díly se věnují popisu prostředí, syntaxi, konfiguraci a proměnným. Pokračuje se ke složitějším konstrukcím, jako jsou podmínky nebo cykly, aby vše uzavřel skript, na kterém si vyzkoušíte vše, co jste se v "kurzu" naučili. Věříme, že v jednotlivých dílech naleznete odpovědi na své otázky.


reklama

Nahoru

(Jako ve škole)
Průměr: 1,00 | Hodnotilo: 6
 

Příspěvky

Seriál o BASHi
Honza.G 1. 02. 2008, 15:34:07
Odpovědět  Odkaz  Odpovědět
Dobrý den,
mohl byste mi jako odborník na shell vysvětlit chovaní příkazu read v následujícím příkazu?

v Posix shellu i v ksh (na HP-UX) - tak jsem byl zvyklý dostávat hodnoty ze souboru do proměnných:

$ grep '.' /etc/hosts|tail -1| read IP NAME N2 ; echo IP=$IP
IP=172.17.80.190

$ bash
bash-3.2$ grep '.' /etc/hosts|tail -1| read IP NAME N2 ; echo IP=$IP
IP=
bash-3.2$ IP=1
bash-3.2$ grep '.' /etc/hosts|tail -1| read IP NAME N2 ; echo IP=$IP
IP=1

### další info ####
bash-3.2$ cat `which read`
#!/usr/bin/sh
# @(#)B11.23_LR

# This is the executable version of read implemented using the
# posix shell built-in read command.

read "$@"
exit $?


----------
fakt je, že na linuxu to funguje stejně (podle mne) špatně i v ksh, tedy možná se do proměnných něco načte, ale pak to zmizí (čili jakoby se zavolal shell subprocess, ale proč a navíc tam žádný /usr/bin/read není)


Naopak, jakýsi workaround funguje na všech shellech stejně:
$ grep '.' /etc/hosts|tail -1 | while read IP NAME N2; do export IP; echo $IP ; done ; echo venku:IP=$IP
172.17.80.190
venku:IP=

Ale jak dostat tu hodnotu mimo cyklus, že?

Budu Vám vděčný, když mi vysvětlíte, jak ten read funguje (kdy se použije vnitřní příkaz shellu a kdy program nalezený dle PATH) a jak si s tím poradit. Alternativně bych uvítal nějaký jiný elegantní a rychlý (na psaní programu i při jeho vykonávání) způsob, zaj dostat řetězce z řádky v souboru do proměnných shell skriptu.

Díky
J.Gruber
Vlastimil Ott Re:Seriál o BASHi
Vlastimil Ott 1. 02. 2008, 17:04:27
Odpovědět  Odkaz  Odpovědět
Obávám se, že Bohdan Milar dnes již svou pozornost věnuje jiným věcem než sledování diskuzí na LinuxEXPRESu. Ale jistě rád poradí někdo jiný, pokud bude vědět (já bohužel nevím).
Milan Kozák Re:Re:Seriál o BASHi
Milan Kozák 1. 02. 2008, 20:37:49
Odpovědět  Odkaz  Odpovědět
Podle mě je lepší se vykašlat na příkaz read a použít správné uvozovky...
Příklad pro dvě proměnné (var1 a var2:

#!/bin/bash
var1="`head -n 1 /etc/hosts | awk '{print $1}'`"
echo $var1

# Alternativní zápis
var2=$( head -n 1 /etc/hosts | awk '{print $2}' )
echo $var2

echo "V /etc/hosts mám na prvním řádku" $var1 $var2
Seriál o BASHi
adela 29. 10. 2010, 14:38:19
Odpovědět  Odkaz  Odpovědět
mám praktickou připomínku: uvítala bych, kdyby jednotlivé díly v celkovém přehledu dílů měly napsaný i krátký podtitulek o čem je, lépe by se v něm vyhledávalo. díky
Miroslav Hrončok Re: Seriál o BASHi
Miro Hrončok 1. 09. 2011, 12:46:33
Odpovědět  Odkaz  Odpovědět
Nějakou dobu to trvalo, ale už to je.

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Bohdan Milar

(*1976) vystudoval Vysokou školu ekonomickou v Praze. Pracuje v obecně prospěšné společnosti Brailcom. Unixové systémy používá od roku 1997. Má rád Bash, FreeMiNT a LaTeX.


  • Hodnocení autora: *


Redakční blog

Michal Hrušecký

Michal Hrušecký, 06. únor

Chystá se KDE 4.8 Release party!

Nové KDE 4.8 je už nějaký čas venku, tak je na čase se sejít a pořádně to oslavit. Po celém světě už...


Pavel Fric

Pavel Fric, 02. únor

Flush

Čerstvý proud -> Mageia. Stahujte poslední verzi souboru flush.mo


Michal Hrušecký

Michal Hrušecký, 01. únor

Čeho se bát v ACTA?

Jako asi každý, i já jsem se zhrozil, když jsem se dozvěděl, že Česká republika a s ní i spousta dalších...


Všechny blogy »