Portál AbcLinuxu, 26. října 2025 21:11
Řešení dotazu:
#!/bin/bash echo "$1"Kdyz zadam na vstupu '\r\n' nic se neinterpertuje..
zkouskamikrofonu( )
{
echo "$1"
}
maraou@u5.lan> zkouskamikrofonu F:\tmp\test
F:tmptest
$ zkouskamikrofonu 'F:\film\' F:\film\
A co takhle nepoužívat retardované OS, které si jako oddělovač adresářů zvolily tradiční escapovací znak (zpětné lomítko)? Nebo si do nich aspoň nainstalovat normální Shell (Bash atd.) a psát cesty s normálním lomítkem (stejně tak to funguje i třeba v Javě – i na těch retardovaných OS).
Díval jsem se, jestli nejde tu interpretaci zpětného lomítka v Bashi vypnout, ale přijde mi, že nejde. Třeba by to v jiném shellu šlo, nevím. Případně si takovou volbu do Bashe dopsat – to by nebyl velký problém. Akorát jde o to, že tím ten shell zmrzačíš a přestanou v něm fungovat věci, na které jsou lidé zvyklí a které všude jinde fungují (\t, \n, \ , \\, \), \', \" atd.)
\t udělá ještě původní shell, ze kterého tu funkci voláš. Musíš to dát do uvozovek nebo apostrofů tam nebo zdvojit \\ (escapovat).
'/t' atp.?
Narazím na to, že nedokážu poznat, jestli nebyl tabulátor součástí názvu souboru, ale tam si můžu říct, že to nedovolím. Má to i další problémy (kromě toho, že je to rovnák na ohýbák)? Nemyslím si, že to je dobrý nápad, přemýšlím jen, jestli by to bylo možné.
xclip -out | nějaká_transformace | xclip -in, případně to rovnou pastnout -- což nevím jak se dělá, já to dělám pomocí sleep 0.2; xdotool click 2)#!/bin/bash echo -n "Adresar: "; read -r FOO echo "$FOO"
To ale čte z terminálu / standardního vstupu, ne z parametru příkazu/funkce. Pokud jsem tazatele pochopil schválně, tak by to chtěl používat takhle:
mojeFunkce() { echo -n "Adresar: "; read -r FOO; echo "$FOO"; }
mojeFunkce aaa\bbb\ccc
ale to parametr ignoruje a čte to ze STDIN.
#!/bin/bash
preved(){
# prevod lomitek
lin_cesta="$(echo "$2" | sed 's#\\#/#g')"
# prevod F:/film na /data/film,
lin_cesta="$(echo "${lin_cesta}" | sed 's#^f:/film#/data/film#I')"
# zobrazeni a pridani do souboru "vstupni nazev".prevedene
echo "${lin_cesta}" | tee -a "${1}.prevedene"
}
# smazani vystupniho souboru pri spusteni
rm "${1}.prevedene"
# nacitani radku z vstupniho souboru zadaneho jako parametr skriptu
while read -r line; do
preved "${1}" "${line}"
done < "${1}"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.