bash skript
(strana 514 cvicenie 13) Napiste skript, ktery prevezme jako argument seznam polozek oddelenych dvojteckou a vypise jednotlive polozky radek po radku do standartniho vystupu (bez dvojtecky).
Pre pridávanie komentárov sa musíte prihlásiť.
#!/bin/sh
echo $1 | tr -s : \\n
ale to nie je riesenie pre ulohu v bash-i, pre bash sa potrebujes pohrat s IFS a poliami v premennych, takze ako domacu ulohu to nespapaju.
$ test.sh jedna:dva
jedna dva
Podla mna by to teoreticky malo fungovat tak ze do $1 sa ulozi hodnota "jedna", do $2 hodnota "dva" a cyklom for sa postupne pod seba vypisu obydve hodnoty. Nevies preco to tak nefunguje?
PS.: vsetky parametre su schovane ako $*, zvysok je popisany v man bash alebo aj v tej knihe urcite.
( IFS=" \n\t\" )
$ test.sh jedna dva
$1 odpoveda "jedna"
$2 odpoveda "dva"
( IFS=":" )
Problem je v tom ze:
$ test.sh jedna:dva
$1 odpoveda "jedna dva"
$2 odpoveda ""
A na to si ako prisiel?
>V cyklu for su premennej foo postupne priradovane hodnoty jednotlivych argumentov prikazovej riadky.
Niesu, ta forka nekoresponduje s zadanim.
for foo in $*
a teraz to skus otestovat:
./skript.sh prvy\ argument:druhy 'treti: stvrty arg' "pia"ty:"si esty"
A skus sa zamysliet preco to vypise to co to vypise. Menovite ako to riesi stare a nove rozdelovanie slov.
Dakujem.
expanzia premennych. Jediny problem je v tom, zenie vzdy v tvojom zivote budes mat k dispozicii bash. Unix like world nie je len o dostupnych GNU nastrojoch, obcas mas k dispozicii len prastary posix shell.