Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: Fastmancz 21 Května 2014, 10:23:29

Název: Bash v ubuntu nejde správně
Přispěvatel: Fastmancz 21 Května 2014, 10:23:29
Dobrý den,
Mám tenhle kód

#!/bin/bash
cd /var/www/html
mkdir $1
chmod -R 0777  $1


Cíl: Přesune se na adresář /var/www/html a vytvoří složku.
Do konzole zadáno:

root@ubuntuserver:/administrace/script# sh userftp.sh mojeslozka
userftp.sh: 2: cd: can't cd to /var/www/html
chmod: nelze přistoupit k „mojeslozka“: Adresář nebo soubor neexistuje


v PHP bude spouštět kód

<?php
$old_path = getcwd();
chdir('/administrace/script/');
$output = shell_exec("./userftp.sh $ftpusr");
chdir($old_path);
?>

Složka se bohužel nevytvoří ani se neudělí práva na danou složku.
Děkuji všem za odpovědi.
Název: Re:Bash v ubuntu nejde správně
Přispěvatel: ntz_reloaded 21 Května 2014, 10:37:04
samozrejme ze bash funguje spravne, kde ale nic neni ani smrt nebere, viz:

Kód: [Vybrat]
userftp.sh: 2: cd: can't cd to /var/www/html
chmod: nelze přistoupit k „mojeslozka“: Adresář nebo soubor neexistuje


a take bych doporucoval naucit se php pokud ho chces pouzivat, protoze delat shell_exec() misto phpoveho mkdir() or ftp_mkdir() je *cunarna:

http://www.php.net/manual/en/function.mkdir.php
Název: Re:Bash v ubuntu nejde správně
Přispěvatel: jmp 21 Května 2014, 10:48:33
to nastavení práv je taky něco ošklivého nepěkná zlá věc
Název: Re:Bash v ubuntu nejde správně
Přispěvatel: Fastmancz 21 Května 2014, 10:48:42
ty složky ale existují...
Název: Re:Bash v ubuntu nejde správně
Přispěvatel: Fastmancz 21 Května 2014, 10:50:46
Já prostě nevím. Prý u ubuntu nefunguje "cd" myšleno v bash .sh. Je tu někdo rozumný, kdo by mi to mohl napsat, protože já s bashem fakt neumím.
Název: Re:Bash v ubuntu nejde správně
Přispěvatel: Šuohob 21 Května 2014, 12:01:07
cd funguje i ve skriptu.
_cokoli_ muzes udelat v comand line, bude fungovat i ve skriptu. Pokud to nefunguje na command line, nepojede to ani ve skriptu...
Název: Re:Bash v ubuntu nejde správně
Přispěvatel: GdH 21 Května 2014, 12:37:30
Jen upozornění. bash != sh, v Ubuntu sh -> /bin/dash. Nikdy nespouštěj bash skripty přes příkaz sh, protože pak už je jedno, že je na prvním řádku správný interpret uveden, místo Bashe to zpracuje Dash, jako systémový shell. Ne že by to bylo relevantní k tomuto problému, protože použité příkazy nepatří mezi rozšíření Bashe.