Autor Zpráva
Pavlínka
Profil
Zdravíčko,
mám tu malý problém: funkce foo(), respektive curl, se mi v konzoli spustí 2x a vůbec netuším proč :D

#!/bin/bash

#spuštění scriptu
foo() {
curl http://127.0.0.1/bash.sh | bash
}
sleep 1

promenna=$(foo)
delka=${#promenna} 
echo $delka
if [ "$delka" == "0" ]; then
exit 0
fi


#kontrola a zápis do mysqli
foo > /var/www/html/info.txt
wget http://127.0.0.1/overeni.php -O /dev/null -o /dev/null
mckay
Profil
Není to tím, že ji nejprve voláš při přiřazení do proměnné proměnná a potom opět později při zápisu do souboru přes >?
Pavlínka
Profil
tak moc tomu nerozumím ... jednoznačně když vše odmau a nechám jen foo() a pak foo > ... tak se dvakrát nebovolá

podle mě se volá podruhé někde tady:

promenna=$(foo)
delka=${#promenna} 


ale tam nevím jak to jinak zapsat
mckay
Profil
Pavlínka:
Volá se v moment co máš $(foo). Ten zápis $ a cokoliv v kulatých závorkách říká: Otevři subshell, vykonej cokoliv je v závorkách a vrať hodnotu (uloží se to tedy do proměnné promenna).
Pavlínka
Profil
EDIT:

Vyřešila jsem to zápisem proměnné... děkuji

echo $promenna > /var/www/html/info.txt
tttt
Profil *
Pavlínka:
Pokud nepotřebuješ vypisovat délku, můžeš
delka=${#promenna} 
echo $delka
if [ "$delka" == "0" ]; then
exit 0
fi
nahradit za
if [ -n "$promenna" ]
then
  exit 0
fi

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0