[Çözüldü] Kabukta sözlük tanımlama

Başlatan Like, 20 Kasım 2014 - 14:41:51

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Like

Merhabalar. Arkadaşlar, kabukta sözlük nasıl tanımlayabilirim? Yapmak istediğim farklı diller için bir sözlük yapısı. Kelimeler isminde bir sözlük, onun içinde Tükçe ve İngilizce sözlüğü, onun içinde de isim ve sıfat diye ayrılan diziler. Şunun gibi:

kelimeler =
{
"Türkçe" :
{
"isimler" :
[
"kedi",
"köpek",
"ekmek",
"iğne",
"telefon"
],

"sıfatlat" :
[
"ağır",
"ince",
"sarı",
"dar",
]
},
"İngilizce" :
{
"isimler" :
[
"fish",
                                 "book",
                                 "guitar",
                                 "piano",
],
"sıfatlar" :
[
  "dirty",
  "good",
  "ugly",
  "great",
]
}
}

heartsmagic

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Like

Tam istediğim şey orada yok. Stackoverflow'a sordum, "böyle kompleks bir yapı bash'de yapılamaz, perl'de yapmalısın" dediler. Sizin düşünceleriniz nedir?

heartsmagic

Kodlama tarafım pek yok ne yazık ki, fakat işin erbabı arkadaşlar yorum yapmaya çalışacaklardır diye ümit ediyorum. Ancak, Stackoverflow'a güvenmek lazım çoğunlukla :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Like

#4
Yardımcı olmaya çalışacak arkadaşlarımıza amacımı da yazayım :) Amacım rastgele sıfat tamlaması üretecek bir betik hazırlamak. Betikte dil ve sayı seçenekleri olacak. Konsolda "rasgele.sh tr 2" dediğimizde "ağır kedi" "sarı iğne" gibi iki adet rastgele tamlama üretmeli. "rastgele.sh en 1" dediğimizde "good book" gibi bir tamlama üretmeli... Ayrıca üretilen isimlerin daha önceden üretilmemiş olması gerekiyor. Üretilen tüm isimler, proje kök dizininde alt dizin olarak oluşturulacak ve program, proje kök dizinine bakarak üretilen isimde bir dizinin olup olmadığına bakacak ve o isimde bir dizin olduğu sürece yeni bir rastgele isim üretecektir.

Bunun için sözlük tanımlamak istedim ancak yapamadım. Şu şekilde dizi oluşturduğumda bir fonksiyon ile rastgele tamlama oluşturabiliyorum:

isim=("koltuk"
"kanepe"
"televizyon"
)

sifat=("güzel"
"çirkin"
"mükemmel"
)

name=("sofa"
"children"
"car"
)

adj=("good"
"bad"
"exactly"
)


ancak ilk sorduğum yapı gibi olursa daha güzel olur :)

Bir de oluşturduğum tamlamalar ile nasıl dizin oluşturacağımı ve dizinin olup olmadığını nasıl kontrol edeceğimi bilmiyorum. Yardımlarınız için şimdiden teşekkürler.

Sorunu çözmüştüm ama yazmayı unutmuşum. Benzer şeyler planlayanlar için kod şu şekilde:

#!/bin/bash

isim="kanepe
koltuk
cilek
elma
kalem
bukalemun
sarap
kagit
makas"

sifat="iri
uzun
cimri
durust
mutevazi
alcak
verimli"

names="andrew
harden
mike
ball
car
sofa
sea
water"

adjs="good
awesome
wonderful
dark
nice
long"

function main(){
case $1 in
"tr")
name=($isim)               
adj=($sifat)
;;
"en")
name=($names)
adj=($adjs)
;;
*)
echo "en ya da tr giriniz"
;;
esac
num_name=${#name[*]}       
num_adj=${#adj[*]}
Random
}

function Random(){
for (( i=0; i<$sayi; ))
do
new_dir="${adj[$((RANDOM%num_adj))]} ${name[$((RANDOM%num_name))]}"
if [ ! -d $HOME/Proje/"$new_dir" ]; then
mkdir $HOME/Proje/"$new_dir"
        echo "$new_dir oluşturuldu"
        ((i=i+1))
fi
done
}

sayi=$2
main $1 $2
exit 0