Portál AbcLinuxu, 10. května 2025 00:50
Ř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.