Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: X0to 19. 12. 2019, 07:58:57
-
Ahoj, poměrně snadný dotaz, který mi dělá problémy.
Ve scriptu mi nefunguje následující:
cesta="/share/test/nazev - nazev 2"
file=$(ls "$cesta/*.txt")
Selže na no such file, soubor tam takový je.
Přímo v řádku funguje ls /share/test/nazev\ -\ nazev2/*.txt
Ale ve scriptu už to zase nefunkční i když to dám přímo do k ls bez promněné.
-
ve skriptu bych řekl že ti to nefunguje protože je špatně naplněná proměná
cesta="/share/test/nazev - nazev 2"
čili pak by to bude ve výsledku
ls /share/test/nazev - nazev 2 což nebude fungovat. Naplň tu proměnou tak jak to děláš přímo na řádku včetně těch zpětných lomítek a bude to zřejmě fungovat :-)
-
Ahoj, poměrně snadný dotaz, který mi dělá problémy.
Ve scriptu mi nefunguje následující:
cesta="/share/test/nazev - nazev 2"
file=$(ls "$cesta/*.txt")
Selže na no such file, soubor tam takový je.
Přímo v řádku funguje ls /share/test/nazev\ -\ nazev2/*.txt
Ale ve scriptu už to zase nefunkční i když to dám přímo do k ls bez promněné.
Přímo v řádku to je ale narozdíl od skriptu escapované. Bez toho to selže taky.
-
ls "$cesta"/*.txt
-
cesta="/share/test/nazev\ -\ nazev2"
ls "$cesta"/*.txt
nefunkční, výstup vypadá v pořádku, přesně jako v řádku, akorát nefunguje.
Rovněž varianta níže není funkční
cesta="/share/test/nazev\ -\ nazev2"
ls $cesta/*.txt
Funkční řešení je samotná bez promněné
ls /share/test/nazev\ -\ nazev2\*.txt
-
A proč tam jebeš ta lomítka?
cesta="/share/test/nazev - nazev2"
ls "$cesta"/*.txt
-
Řešení:
#!/bin/bash
cesta='/share/test/nazev - nazev 2'
file=$(ls "$cesta"/*.txt)
echo $file
-
Oba příspěvky výše potvrzuji, funkční.
Tento způsob jsem zkoušel taky, bohužel měl jsem chybu v cestě, takže mezi klávesnicí a židlí. ::)
Děkuji všem.