Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Marek 19. 09. 2011, 10:55:32
-
Potreboval bych poradit s shell scriptem v linuxu - zacinam.
for i in l k j i h g f e d c b a
do
delej neco
done
bych potreboval udelat tak, abych zadal za i="znak" a smycka bezela postupne od tohoto pismene az k pismenu "a"
Jde to nejak jednoduse udelat ?
-
Myslel jsem to tak, abych nemusel vypisovat celou abecedu a test delaz pro celou abecedu, ale jen od pismene, ktere prislo. A jeste v sestupnem poradi - tj. od z -> a
-
man seq
man range
-
podivam se, dik. Jinak mi nekdo predelal nadpis a ma to byt v shell scriptu (#!/bin/sh)
-
1. seq naspat nepocita :-(
2. range??? command not found
http://mywiki.wooledge.org/BashFAQ/071
<code>
#!/bin/bash
chr() {
printf \\$(printf '%03o' $1)
}
ord() {
printf '%d' "'$1"
}
start=`ord $1`
stop=`ord a`
while [[ $start -ge $stop ]]; do
echo $start
abc=`chr $start`
echo $abc
# delej neco $start
# delej neco $abc
let start=${start}-1
done
</code>
S tym ze pismeno s ktorym sa ma zacat je parameter skriptu, a berie to len male pismena.
-
1. seq naspat nepocita :-(
ale pocita ;-)
seq 10 -1 1
Abeceda odzadu v Bash-i:
echo {z..a}
-
echo {z..a} vypise jen {z..a}
-
echo {z..a} vypise jen {z..a}
Bash v3 (http://tldp.org/LDP/abs/html/bashver3.html)
-
Ale ja to mam delat v "sh" , ne "bash". Podotykam, jsem zacatecnik... v sh mi {z..a} nejde
-
1. seq naspat nepocita :-(
ale pocita ;-)
seq 10 -1 1
Abeceda odzadu v Bash-i:
echo {z..a}
Dik, to je ozaj jednoduchsie. Thumbs up :-)
inac bash vs sh...:
$ ls -l `which sh`
lrwxrwxrwx. 1 root root 4 5 sept. 10:51 /bin/sh -> bash
takze asi tak ;-)
-
jo, jenze ja mam /bin/sh soucasti nejakeho busyboxu a ten ma asi jen zakladni moznosti, takze musim pouzivat dřevní prikazy
-
jo, jenze ja mam /bin/sh soucasti nejakeho busyboxu a ten ma asi jen zakladni moznosti, takze musim pouzivat dřevní prikazy
ord a chr, co ti napisal kolega funguju skoro uplne v pohode aj u mna - treba sa len vyhnut novinkam na styl $(prikaz)
Pristup aaa158 je celkom pekny, staci uz len odstranit bashoviny ako
[[ whatever ]]
a
let x=x+1
Ak chces tvorit nieco vlastne, tak odporucam napisat vlastnu funkciu seq, ako tu bola opisovana; tu napises aj na predpotopnom shelli pomerne lahko pomocou while.
-
tak prave ze chr ani org neni podporovana. Je to zarizeni, ktere sice pouziva linux, ale neni tam vse ...
-
tak prave ze chr ani org neni podporovana
V com moze byt u lubovolneho ucitela nepodporovane spominane
#!/bin/bash
chr() {
printf \\$(printf '%03o' $1)
}
ord() {
printf '%d' "'$1"
}