Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Problém v BASH-i

Zdravím,

mám pre mňa jeden nevysvetlitelný problém.

DefaultGateway_test () {

echo "Testing $DG, please wait..." && ping -c 5 -W 2 -i 1 $DG | grep "bytes from" > testing_file.txt
echo "Testing $DG, please wait..." && ping -c 5 -W 2 -i 1 $DG | grep "bytes from" > testing_file.txt

if grep -q "bytes from" ./testing_file.txt; then

	echo "IPv4 address is available!" && echo && rm testing_file.txt

	else

		echo "IPv4 address is not available!" && echo && rm testing_file.txt

fi

}

Vo funkcii mám 2 identické riadky (apsoň si to teda myslím), lennže 1 je skopírovaný z predošlej funkcie (ten funkčný) a jeden je napísaný znovu ručne. Prečo ten jeden riadok nefunguje? Už sa mi to pár krát stalo, ale vždy sa to nejako zázračne samo vyriešilo (teda zrejme niečo robím blbo).

2. riadok je funkčný, 1. riadok je nefunkčný, outputy = obrázky

Vopred ďakujem za všetky rady.
převod do code tagu (touchwood)

Řešení:

V chybném případě není mezera před "grep" mezerou, ale něco, co považuje bash za nemezerový znak, ač to tak vypadá (tipuji na x0D). Poznáš to podle chybové zprávy, za dvojtečkou "...line 30:" jsou dvě mezery, ne jedna jako v normální chybové hlášce. Takže ten znak, ač se zobrazuje jako mezera, je něco, co bash nacpe před "grep" a tudíž příkaz " grep" správně nezná. Zkus přepsat ručně tu mezeru, uvidíš, že to bude pochodovat.

PS: 2 touch: Nemusíš být arogantní a ukazovat, že jen ty nepíšeš humpolácké skripty. Když spěchám, napíšu to ještě horší. Hlavně, že mi to cválá :-)

Předmět Autor Datum
protože na druhém řádku přepíšeš soubor, který jsi vyrobil v tom prvním. Jinak takto humpolácky nap… nový
touchwood 21.03.2018 20:16
touchwood
Neprepisujem, vždy ho zakomentujem - viď. obrázky. Alebo sa mýlim? (2 riadky sú tam len preto, že po… nový
DRUGI 21.03.2018 20:22
DRUGI
prostě pingni a následně otestuj proměnnou $? což je ekvivalent dosovského %ERRORLEVEL%, případně vi… nový
touchwood 21.03.2018 20:24
touchwood
Áno, bolo to presne v medzere. Ďakujem pekne za obe rady, testovanie "$?" bude omnoho rozumnejšie, e… nový
DRUGI 21.03.2018 20:33
DRUGI
V chybném případě není mezera před "grep" mezerou, ale něco, co považuje bash za nemezerový znak, ač… nový
Rce 21.03.2018 20:29
Rce
Ďakujem krásne za radu, tie 2 medzery by som si tam nikdy nevšimol... Veľmi užitočné! Kľudne nech je… nový
DRUGI 21.03.2018 20:39
DRUGI
od kdy je napsání pravdy arogance? Já jsem napsal tolik humpoláckých skriptů, a právě proto, když to… nový
touchwood 21.03.2018 20:46
touchwood
Ale houby kopnout, ale jde to napsat slušněji. Mi vadí arogance rádců, možná jsem to zrovna teď u te… nový
Rce 22.03.2018 00:05
Rce
navrhuji pakt o neútočení! :-) nový
touchwood 22.03.2018 10:18
touchwood
Souhlas, ale všichni rádcové skautíků by si měli zakoupit velice pevné nervy, zbavit se nadřazenosti… poslední
Rce 22.03.2018 16:57
Rce

V chybném případě není mezera před "grep" mezerou, ale něco, co považuje bash za nemezerový znak, ač to tak vypadá (tipuji na x0D). Poznáš to podle chybové zprávy, za dvojtečkou "...line 30:" jsou dvě mezery, ne jedna jako v normální chybové hlášce. Takže ten znak, ač se zobrazuje jako mezera, je něco, co bash nacpe před "grep" a tudíž příkaz " grep" správně nezná. Zkus přepsat ručně tu mezeru, uvidíš, že to bude pochodovat.

PS: 2 touch: Nemusíš být arogantní a ukazovat, že jen ty nepíšeš humpolácké skripty. Když spěchám, napíšu to ještě horší. Hlavně, že mi to cválá :-)

Souhlas, ale všichni rádcové skautíků by si měli zakoupit velice pevné nervy, zbavit se nadřazenosti nad tazateli z vzpomenout na svoje začátky. Ne, každý, kdo se blbě ptá, je blbec. Jen se neumí lépe zeptat. Tazatelé nejsou malí haranti, ale bezradní lidé, co se dostali do úzkých a hledání v Gůůůůůůůůůglu neovládají. V počátcích Poradny bývala ochota radit lepší. Pozoruji sice velké zlepšení (ale ještě dost toho zbylo), někteří rádcové se raději stáhli do hospody a nedělají tolik z uživatelů blbce, ani nehaní jejich zařízení, že mají krámy z mají všechno vyhodit. To víš, z dřívějších dob, když vidím jak někdo nadává uživatelům, tak mi to prostě jedno není, i když jsem byl odejit. Když bude slušnost od rádců, ochota radit, nearogance, nenadávání, nehanění schopností a zařízení, bude to ok a jsem spokojen, že má dávná práce nepřišla zcela na zmar. Ono i říci někomu, že je blbec, lze slušně :-). Zdar a pevné nervy přeji. ;-)
PS: Hergot, ty smajlící jsou tak mrňaví, že je nerozeznám ani s novejma brejlema.

Zpět do poradny Odpovědět na původní otázku Nahoru