Ney?
sed
, awk
, grep
gibi komutlar ile denemeler yapabilmek için bir ortam oluşturur. “Ortam” deney dosyaları ve kısıtlı çalışan bir bash
kabuğundan oluşuyor.
Şu konuya da göz atabilirsiniz: 5.000.000 işlem 1 Satır
Amaç?
- Gösteren ve uygulayan kişinin aynı dosyalar ile çalışmasını sağlamak.
- Uygulayan kişinin kısıtlı bir ortamda çalışması.
Kısıtlı Ortam?
bash
kabuğunun özel bir modu – rbash
veya bash --restricted
ile girilir. Bu modda, özellikler ve komutlar kısıtlanmıştır. Çalışma ortamının özelliklerini kontrol etmek ve mesela yeni başlayan kullanıcıların hata yapma olasılığını minimize etmek için kullanılıyor.
Deney Dosyaları?
Isimler, Atasözleri, Türkçe-Ingilizce kelimeler ve birkaç (tek-renk) Resim den oluşan bazı deney dosyaları.
Kur:
0parse-all.txt
'nin içeriğini işlettiğinizde, gerekli betikler ve klasörler oluşturulur.
Işletmek için iki seçeneğiniz var:
-
dosya
: 0parse-all.txt dosyasını indirdikten sonra, birterminal-penceresi
'nde çalıştırarak.bash 0parse-all.txt
Göster
-
kod-kutusu
: Aşağıdaki “Kod-Kusunda” ki tüm satırları kopyalayıp birterminal-penceresi
'ne yapıştırarak.Göster
Kod-Kutusu
#!/usr/bin/env bash ## -- vi:ft=sh: ## -- evvel desk=$(xdg-user-dir DESKTOP) baz=$desk/dene-regex mkdir $baz 2> /dev/null cd $baz dr_bashrc=$baz/bashrc dr_denebash=$baz/dene.bash dr_deneayar=$baz/dene.ayar dr_dosyabash=$baz/dosya.bash dr_dosyaayar=$baz/dosya.ayar ## -- bashrc cat <<-"EOF0" > bashrc #!/usr/bin/env bash # temiz ayar: unalias -a # dene ayar: . "${BASH_SOURCE%/*}"/dene.ayar export PS1="\[\033[00;30;43m\]Pardus \[\033[00m\] " export PATH=$d_komut:$HOME/bin/dene-regex # ev: cd $baz # komut: lakap(){ # YAP: Girdi denetimi [[ -d $d_komut ]] && /bin/rm -r $d_komut/ /bin/mkdir $d_komut for k in ${izinli_komutlar[@]} ; do if [[ ! -L $k ]] ; then if type -P /bin/$k &> /dev/null ; then /bin/ln -s /bin/$k $d_komut/$k elif type -P /usr/bin/$k &> /dev/null ; then /bin/ln -s /usr/bin/$k $d_komut/$k else echo "HATA: $k komutunun yeri doğru belirtilmeli" fi fi done /bin/ln -s /bin/rm $d_komut/.bunu_kullanma_rm alias grep="grep --color=always" } lakap # denetle: # kısıtlı mod shopt -q restricted_shell && dar=1 && printf '\033[1;33;40m\n%s\n\033[0m\n' 'Kısıtlı "regex deneme" modundasınız.' # toparla: trap ".bunu_kullanma_rm -r $d_komut ; printf '\033[1;33;40m\n%s\n\033[0m\n' 'Regex deneme modundan çıktınız.' " 0 EOF0 ## -- dene.bash cat <<-"EOF0" > dene.bash #!/usr/bin/env bash desk=$(xdg-user-dir DESKTOP) deneayar=$desk/dene-regex/dene.ayar # deneayar="${BASH_SOURCE%/*}/dene.ayar" . "$deneayar" # yardımcılar: yardim() { echo " Opsiyonlar: -y | -? | --yardım Yardım. -t | --temizle Denek dosyalarını yenile. -k | --kalıcı Başlatıcı ve ayar dosyalarını kalıcı olarak yerleştir ve bitir. Örnekler: $bet $bet --temizle $bet --yardım $bet --kalıcı " } # DOSYA: # deney klasörü ve içeriğini yenile temizle() { # if [ "$1" -eq "$1" ] 2> /dev/null ; then if [[ "$1" == 1 ]] ; then c=e else local c printf '%s\n%s' "$1" "$2" read c fi if [ $c = e ] ; then printf '%s\n%s\n' '"Evet" dediniz.' "Deney dosyaları yenilendi!" "$baz/./dosya.bash" else printf '%s\n%s\n' '"Hayır" dediniz.' "Deney dosyaları yenilanmedi!" exit 0 fi } # KALICI kalici(){ # uçbirimden veya menüden çalıştırabilmek için # dizinler denebinkal="$HOME/.local/bin/dene-regex/${denebin##*/}" local dd="${denebinkal%/*}" local dm="${denemasa%/*}" [ ! -d "$dd" ] && mkdir -p "$dd" [ ! -d "$dm" ] && mkdir -p "$dm" # patika # if echo $PATH | grep -q "$dd" ; then if grep -q "$dd" "$kabukayar" ; then : else echo -e "\n# dene-regex program patikasını ekle\nexport PATH=\$PATH:$dd" >> "$kabukayar" fi # uçbirim çalıştırıcı # YAP: - uninstall-temizliğinde sil. denebinkal="${denebinkal%.*}" [ ! -e "$denebinkal" ] && ln -s "$denebin" "${denebinkal}" # local-dene -> baz-dene.bash # chmod ug+x "$denebin" # masaüstü çalıştırıcı [ -e "$denemasa" ] && rm "$denemasa" cat -- > "$denemasa" <<EOF [Desktop Entry] Name=dene-regex Comment=Regex deney ortamı ve dosyaları oluşturur Exec=xfce4-terminal --command='bash "$denebin"' Icon=utilities-terminal Terminal=false Type=Application Categories=Application; EOF } # ARGÜMAN: # (( $# <= 0 )) && printf '%s %s\n' "Ipucu: Yardım için '-y' opsiyonunu kullanın:" "$bet -y" # argümanları işle while : ; do case $1 in -y|-\?|--yardım) yardim exit 0 ;; -t|--temizle) temizle "Deney dosyalar yenileniyor." "Devam edilsinmi? (e/h)" shift ;; -k|--kalıcı) kalici exit 0 shift ;; -?*) printf 'IPTAL: Opsiyon "%s" tanımlanamadı!\n' "$1" >&2 ;; *) # Opsiyon kalmadı break esac shift done # DENETIM # dosya: deney dosyaları yenile [ ! -d "$d_denek" ] && temizle 1 && echo "$d_denek" # KISITLI: # kısıtlı kabuk ortamı /bin/rbash --rcfile "$baz/bashrc" EOF0 ## -- dene.ayar cat <<-"EOF0" > dene.ayar #!/usr/bin/env bash # Desktop | Masaüstü | ... desk=$(xdg-user-dir DESKTOP) # temel export baz=$desk/dene-regex # kullanıma açık/izinli komutlar d_komut="$baz/komut" # deney dosyalar d_denek="$baz/denek" # ayarlar export deneayar="$baz/dene.ayar" kabukayar=$HOME/.bashrc # çalıştırıcılar denebin="$baz/dene.bash" # '--kalıcı' opsiyonunda değişir! denemasa="$HOME/.local/share/applications/dene-regex.desktop" # betik ismi bet=$(basename "$BASH_SOURCE") # KOMUT: # izinli komutlar: # kullanmak istediğiniz komut'un ismini bu listeye ekleyin izinli_komutlar=( clear ls cat grep sed awk find locate less more mkdir ) EOF0 ## -- dosya.bash cat <<-"EOF0" > dosya.bash #!/usr/bin/env bash . $deneayar # vars: dosbaz="$baz/denek" ctf="$baz/dosya.ayar" # isim lmark=4 # generate files/dirs from yaml-like list genden () { # YAP: # - dosya kaynaklı içerik yerleştirme # - patika bağlamında içerik belirleme: '2018/ali' ve '2017/ali' dosyalarına farklı içerik local dm=( "-vberkant=Berkant'ın dosyası" "-vdeniz=Deniz'ın dosyası" "-vyakup=Yakup'un dosyası" "-vkarmaisimler=Aybüke\nAytuğ\nAli\nAyşe\nBerkant\nDeniz\nMuhammed\nMert\nMertcan" "-visimlera=Abid | 4 | Erkek\nAbidin | 6 | Erkek\nAbir | 4 | Erkek\nAbır | 4 | Erkek\nAbıru | 5 | Kız\nAbit | 4 | Erkek\nAbiye | 5 | Kız\nAcabay | 6 | Erkek\nAcabey | 6 | Erkek\nAça | 3 | Kız\nAçalya | 6 | Kız\nAçangül | 7 | Kız\nAcarbey | 7 | Erkek\nAcarbike | 8 | Kız\nAdam | 4 | Erkek\nAdamış | 6 | Erkek\nAdni | 4 | Erkek\nAdniye | 6 | Kız\nAfife | 5 | Kız\nAfif | 4 | Erkek\nAğanbegim | 9 | Kız\nAğanbegüm | 9 | Kız\nAğanbike | 8 | Kız\nAkal | 4 | Erkek\nAkalın | 6 | Erkek Kız\nAkanay | 6 | Erkek Kız\nAkaner | 6 | Erkek\nAkarsel | 7 | Erkek\nAkarsu | 6 | Erkek Kız\nAkbaşak | 7 | Erkek Kız\nAkbaş | 5 | Erkek\nAkhan | 5 | Erkek\nAkhanım | 7 | Kız\nAlakurt | 7 | Erkek\nAlakuş | 6 | Erkek Kız\nAlçın | 5 | Erkek\nAlçin | 5 | Kız\nAlime | 5 | Kız\nAlim | 4 | Erkek\nAlım | 4 | Kız\nAlp | 3 | Erkek\nAlpermiş | 8 | Erkek\nAlpertunga | 10 | Erkek\nAlpgiray | 8 | Erkek\nAlphan | 6 | Erkek\nAlsoy | 5 | Erkek Kız\nAlsu | 4 | Kız\nAltınnur | 8 | Kız\nAltınok | 7 | Erkek\nAmber | 5 | Kız\nAmile | 5 | Kız\nAmil | 4 | Erkek\nAngıl | 5 | Erkek\nAngın | 5 | Erkek Kız\nAngış | 5 | Erkek\nArife | 5 | Kız\nArif | 4 | Erkek\nArkan | 5 | Erkek\nArkay | 5 | Kız\nArukan | 6 | Erkek\nArukız | 6 | Kız\nAsalbegim | 9 | Kız\nAsalbegüm | 9 | Kız\nAsan | 4 | Erkek\nAşan | 4 | ErkekÂsan | Kız\nAsile | 5 | Kız\nAsil | 4 | Erkek\nAsılgül | 7 | Kız\nAsıma | 5 | Kız\nAşkınay | 7 | Erkek\nAşkıner | 7 | Erkek\nAşkın | 5 | Erkek Kız\nAslı | 4 | Kız\nAslım | 5 | Kız\nAslınur | 7 | Kız\nAsliye | 6 | Kız\nAtaan | 5 | Erkek\nAtabay | 6 | Erkek\nAtabek | 6 | Erkek\nAtabey | 6 | Erkek\nAtabörü | 7 | Erkek\nAtacan | 6 | Erkek\nAtaç | 4 | Erkek\nAtagül | 6 | Kız\nAtagün | 6 | Erkek\nAtasagun | 8 | Erkek\nAtasan | 6 | Erkek\nAtasay | 6 | Erkek\nAtik | 4 | ErkekÂtik | Kız\nAtila | 5 | Erkek\nAtlıhan | 7 | Erkek\nAtmaca | 6 | Erkek\nAtom | 4 | Erkek\nAvar | 4 | Erkek\nAvcı | 4 | Erkek\nAvhan | 5 | Erkek\nAvkan | 5 | Erkek\nAvni | 4 | Erkek\nAvniye | 6 | Kız\nAya | 3 | Kız\nAyal | 4 | Kız\nAyalp | 5 | Erkek\nAyaltın | 7 | Erkek Kız\nAyana | 5 | Kız\nAyanç | 5 | Erkek\nAyanfer | 7 | Kız\nAyaşan | 6 | Kız\nAyas | 4 | Erkek Kız\nAybala | 6 | Kız\nAybanu | 6 | Kız\nAybar | 5 | Erkek\nAybars | 6 | Erkek\nAybaş | 5 | Erkek\nAybay | 5 | Erkek\nAybet | 5 | Kız\nAybey | 5 | Erkek\nAybige | 6 | Kız\nAybike | 6 | Kız\nAybirgen | 8 | Kız\nAybir | 5 | Kız\nAybüge | 6 | Kız\nAybüke | 6 | Kız\nAydanur | 7 | Kız\nAydar | 5 | Erkek Kız\nAydemir | 7 | Erkek\nAydınyol | 8 | Erkek\nAydoğan | 7 | Erkek Kız\nAydoğdu | 7 | Erkek\nAyferi | 6 | Kız\nAyferim | 7 | Kız\nAyfer | 5 | Kız\nAygen | 5 | Kız\nAygerim | 7 | Kız\nAygök | 5 | Kız\nAygöl | 5 | Kız\nAygüner | 7 | Erkek\nAygün | 5 | Erkek Kız\nAygünkız | 8 | Kız\nAyhanım | 7 | Kız\nAyhatun | 7 | Kız\nAyık | 4 | Erkek\nAyilkin | 7 | Kız\nAyla | 4 | Kız\nAylan | 5 | Erkek Kız\nAylanur | 7 | Kız\nAylin | 5 | Kız\nAyman | 5 | Erkek\nAymaral | 7 | Kız\nAymelek | 7 | Kız\nAyselen | 7 | Kız\nAysel | 5 | Kız\nAysema | 6 | Kız\nAysen | 5 | Kız\nAyşen | 5 | Kız\nAyşenur | 7 | Kız\nAysere | 6 | Kız\nAyseren | 7 | Kız\nAyser | 5 | Kız\nAyseven | 7 | Kız\nAysever | 7 | Erkek\nAysev | 5 | Erkek Kız\nAytek | 5 | Erkek Kız\nAytekin | 7 | Erkek\nAytemiz | 7 | Erkek Kız\nAytemur | 7 | Erkek\nAzize | 5 | Kız\nAziz | 4 | Erkek\nAzrak | 5 | Erkek\nAzra | 4 | Kız\nAzze | 4 | Kız" "-visimlerb=Babürşah | 8 | Erkek\nBacı | 4 | Kız\nBadegül | 7 | Kız\nBade | 4 | Kız\nBağdaç | 6 | Erkek\nBağdagül | 8 | Kız\nBağdaş | 6 | Erkek\nBağlan | 6 | Kız\nBâhire | 6 | Kız\nBahir | 5 | Erkek\nBâhir | 5 | Erkek\nBahise | 6 | Kız\nBahri | 5 | Erkek\nBahriye | 7 | Kız\nBahtiyar | 8 | Erkek Kız\nBakanay | 7 | Erkek Kız\nBalbal | 6 | Erkek\nBalbay | 6 | Erkek\nBalbey | 6 | Erkek\nBalca | 5 | Kız\nBalcan | 6 | Erkek\nBaldan | 6 | Kız\nBaldemir | 8 | Erkek\nBaler | 5 | Erkek\nBalhan | 6 | Erkek\nBalıbaş | 7 | Erkek\nBalibey | 7 | Erkek\nBalıbey | 7 | Erkek\nBalı | 4 | Erkek\nBalım | 5 | Erkek Kız\nBalın | 5 | Kız\nBalkan | 6 | Erkek\nBalk | 4 | Erkek\nBalkı | 5 | Erkek Kız\nBalkın | 6 | Kız\nBalkır | 6 | Erkek Kız\nBalkış | 6 | Erkek\nBalkız | 6 | Kız\nBalkoç | 6 | Erkek\nBasak | 5 | Erkek\nBaşak | 5 | Kız\nBaşal | 5 | Erkek\nBasri | 5 | Erkek\nBasriye | 7 | Kız\nBatı | 4 | Erkek Kız\nBatıhan | 7 | Erkek\nBatıray | 7 | Erkek\nBatır | 5 | Erkek\nBatırhan | 8 | Erkek\nBattal | 6 | Erkek\nBatucem | 7 | Erkek\nBatu | 4 | Erkek\nBatuhan | 7 | Erkek\nBaturalp | 8 | Erkek\nBaturay | 7 | Erkek\nBatur | 5 | Erkek\nBaturhan | 8 | Erkek\nBeder | 5 | Kız\nBedia | 5 | Kız\nBedi | 4 | Erkek\nBedihe | 6 | Kız\nBedih | 5 | Erkek\nBedir | 5 | Erkek\nBedirhan | 8 | Erkek\nBedirnisa | 9 | Kız\nBedis | 5 | Kız\nBediz | 5 | Erkek Kız\nBedreka | 7 | Kız\nBedrettin | 9 | Erkek\nBedri | 5 | Erkek\nBedriye | 7 | Kız\nBedük | 5 | Erkek\nBeğenç | 6 | Erkek\nBegim | 5 | Kız\nBegüm | 5 | Kız\nBehçet | 6 | Erkek\nBehice | 6 | Kız\nBehiç | 5 | Erkek\nBehin | 5 | Kız\nBehire | 6 | Kız\nBehiye | 6 | Kız\nBehlül | 6 | Erkek\nBehmen | 6 | Erkek\nBehnane | 7 | Kız\nBehnan | 6 | Erkek\nBelma | 5 | Kız\nBelmen | 6 | Kız\nBenal | 5 | Erkek\nBenam | 5 | Erkek\nBenan | 5 | Erkek Kız\nBenay | 5 | Kız\nBenazir | 7 | Erkek\nBender | 6 | Erkek\nBendeş | 6 | Erkek\nBenek | 5 | Kız\nBener | 5 | Erkek\nBenevşe | 7 | Kız\nBengialp | 8 | Erkek\nBengibay | 8 | Erkek\nBengi | 5 | Erkek Kız\nBengigül | 8 | Kız\nBengisan | 8 | Erkek Kız\nBengisoy | 8 | Erkek\nBengisu | 7 | Erkek Kız\nBerceste | 8 | Kız\nBercis | 6 | Kız\nBereket | 7 | Erkek Kız\nBeren | 5 | Erkek Kız\nBerfin | 6 | Erkek Kız\nBerfu | 5 | Kız\nBerge | 5 | Erkek\nBergin | 6 | Erkek\nBergüzar | 8 | Kız\nBeria | 5 | Kız\nBeri | 4 | Erkek\nBerin | 5 | Erkek Kız\nBeriye | 6 | Kız\nBerkal | 6 | Erkek\nBerkan | 6 | Erkek\nBerkant | 7 | Erkek\nBerkay | 6 | Erkek\nBerke | 5 | Erkek Kız\nBerkel | 6 | Erkek\nBerker | 6 | Erkek\nBeşer | 5 | Erkek\nBeşgül | 6 | Kız\nBesime | 6 | Kız\nBesim | 5 | Erkek\nBetik | 5 | Erkek Kız\nBetil | 5 | Kız\nBetim | 5 | Erkek\nBetülay | 7 | Kız\nBetül | 5 | Kız\nBeyazıt | 7 | Erkek\nBeyzade | 7 | Erkek\nBeyza | 5 | Kız\nBeyzat | 6 | Erkek\nBezek | 5 | Kız\nBezen | 5 | Kız\nBezmiâlem | 9 | Kız\nBican | 5 | Erkek\nBidar | 5 | Kız\nBidayet | 7 | Kız\nBige | 4 | Kız\nBigüm | 5 | Kız\nBihan | 5 | Kız\nBihan | 5 | Kız\nBihine | 6 | Kız\nBihterin | 8 | Kız\nBihter | 6 | Kız\nBike | 4 | Kız\nBilâl | 5 | Erkek\nBilan | 5 | Erkek\nBilay | 5 | Erkek Kız\nBilbaşar | 8 | Erkek\nBilbay | 6 | Erkek\nBileda | 6 | Erkek\nBilek | 5 | Erkek\nBilender | 8 | Erkek\nBilen | 5 | Erkek Kız\nBilnur | 6 | Erkek\nBilsay | 6 | Erkek\nBilsen | 6 | Erkek Kız\nBilsev | 6 | Kız\nBilsin | 6 | Kız\nBiltaş | 6 | Erkek\nBiltay | 6 | Erkek\nBilyap | 6 | Erkek\nBirce | 5 | Erkek Kız\nBirçek | 6 | Kız\nBirdal | 6 | Erkek Kız\nBirge | 5 | Erkek Kız\nBirgen | 6 | Kız\nBirgi | 5 | Erkek\nBirgit | 6 | Erkek\nBirgül | 6 | Kız\nBirgün | 6 | Kız\nBirhan | 6 | Erkek Kız\nBiricik | 7 | Kız\nBirim | 5 | Kız\nBiriz | 5 | Erkek Kız\nBirkan | 6 | Erkek\nBirke | 5 | Kız\nBirkök | 6 | Erkek\nBirmen | 6 | Erkek\nBirnaz | 6 | Kız\nBirnur | 6 | Kız\nBoyer | 5 | Erkek\nBoy | 3 | Erkek\nBoylan | 6 | Erkek\nBoylu | 5 | Erkek\nBoynak | 6 | Erkek\nBoyraz | 6 | Erkek\nBoysal | 6 | Erkek\nBoysan | 6 | Erkek\nBozan | 5 | Erkek\nBozat | 5 | Erkek\nBozay | 5 | Erkek\nBozbağ | 6 | Erkek\nBozbala | 7 | Erkek\nBozbaş | 6 | Erkek\nBozbay | 6 | Erkek\nBozbey | 6 | Erkek\nBozbora | 7 | Erkek\nBucak | 5 | Erkek\nBudak | 5 | Erkek\nBudunal | 7 | Erkek\nBudunalp | 8 | Erkek\nBudun | 5 | Erkek\nBuğday | 6 | Kız\nBüğdüz | 6 | Erkek\nBüge | 4 | Erkek Kız\nBüget | 5 | Erkek\nBuğra | 5 | Erkek\nBüte | 4 | Kız\nBütün | 5 | Erkek Kız\nBuyan | 5 | Erkek\nBuyrukalp | 9 | Erkek\nBuyrukata | 9 | Erkek\nBuyrukbay | 9 | Erkek" "-vtureng=acımak | 6 | » ache 4 » bepainful 9 » hurt 4\nacındırmak | 10 | » excitepity 10\nacıtmak | 7 | » hurt 4\nalkışlamak | 10 | » acclaim 7 » applaud 7 » clap 4\nalmak | 5 | » get 3 » layholdof 9 » pickup 6 » take 4 » have 4 » receive 7\nalmanak | 7 | » almanac 7\nbalkon | 6 | » balcony 7\nbalon | 5 | » balloon 7\nbüyük elçi | 9 | » ambassador 10\nbüyük kilise | 11 | » cathedral 9\nbüyük zil | 8 | » cymbal 6\ndomuz eti | 8 | » pork 4\ndomuz pastarması | 15 | » bacon 5\ndüşmek | 6 | » drop 4 » fall 4\ndüşünmek | 8 | » think 5\nerkek domuz | 10 | » boar 4\nerkek kardeş | 11 | » brother 7\ngöbek | 5 | » abdomen 7 » belly 5 » tummy 5\ngöndermek | 9 | » send 4 » transmit 8\ngörmek | 6 | » see 3\ngüzel koku | 9 | » aroma 5 » flavour 7\ngüzel sanat | 10 | » art 3\nhiçbir yerde | 11 | » nowhere 7\nhiçbir şey | 9 | » nothing 7\nkabul edilebilir | 15 | » acceptable 10\nkabul etmek | 10 | » accept 6 » receive 7 » take 4 » takein 6\nkaplan | 6 | » tiger 5\nkaptan | 6 | » captain 7\nkartal | 6 | » eagle 5\nkartpostal | 10 | » postcard 8\nkesin | 5 | » accurate 8 » ontime 6 » prompt 6 » punctual 8\nkeskin | 6 | » acerbic 7 » bitter 6\nkulak | 5 | » ear 3\nkullanmak | 9 | » employ 6 » use 3 » makeuseof 9\nkılıç | 5 | » sword 5\nkırlangıç | 9 | » swallow 7\nnefes alma | 9 | » breath 6\nnefes almak | 10 | » breathe 7\nsevmek | 6 | » love 4\nseçmek | 6 | » choose 6 » elect 5 » pickout 7\ntarak | 5 | » comb 4\ntaramak | 7 | » comb 4\ntavan | 5 | » ceiling 7\ntavşan | 6 | » rabbit 6 » hare 4\ntoplamak | 8 | » collect 7 » gather 6 » pickup 6\ntoprak | 6 | » earth 5 » land 4 » soil 4\nyazmak | 6 | » write 5\nyaşamak | 7 | » bealive 7 » live 4\nyürümek | 7 | » march 5 » walk 4\nyüzmek | 6 | » float 5 » swim 4" ) mapfile -t comm < <( awk "${dm[@]}" -v dosbaz=$dosbaz ' BEGIN{ FS="[[:space:]:]*$" } # transliterate `ş` -> `s`, ` ` -> ``, ... function translit(){ r="" split(gensub(/^(.*)\.[^\.]*$/, "\\1", "g", $0), ascii, /[şŞıçÇğĞ[:blank:]]|[^[:alnum:]]/, seps) for (as in ascii){ if(seps[as]!~/[şŞıçÇğĞ]/){ seps[as]="" } r = r ascii[as] seps[as] } c="echo "gensub(/\"/, "", "g", r)" | iconv -f utf-8 -t ascii//translit"; while ( c | getline r ){print r } return r } { # girinti gkh=4 bos=(match($1, /\S/)-1) g=int( (bos + (gkh-1)) / gkh ) # sil: ön-boşlar sub(/^[[:space:]]+/, "", $0) # dize d=$1 # im: (im k)lasör if ($0~/^.*:\s*$/){ imk=1; dm=0 } else { imk=0; dm=0 ddm=translit() if(length(SYMTAB[ddm])!=0){ dm=1 dmic=SYMTAB[ddm] } } } { # anahtar: (g)irinti if (g==0){ hamal=dosbaz"/"d } else if (g==sg){ sub(/[^\\\/]+[\\\/]*$/, d, hamal) } else if (g>sg){ hamal=hamal"/"d } else if (g<sg){ ks=(sg-g)+1 hamal=gensub("(/[^/]+){"ks"}$", "", "g", hamal)"/"d } } { if (imk==0){ if (dm==1){ dosic=dosic" echo \""dmic"\" > \""hamal"\";" } else { dos=dos" \""hamal"\"" } } else { diz=diz" \""hamal"\"" } sg=g } END { if(hata!=1){ system("mkdir -pv " diz) system("touch " dos) system(dosic) } } ' < <(sed '/^#\|^$/d' $ctf) ) } genden # base64 resim: res64 () { # base64 vars: local res__yellow_50__png='iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX//wD///+LefOdAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+ICEQsSH/yU4XQAAAAOSURBVBjTY2AYBYMJAAABkAABxZvbSQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wMi0xN1QwODoxODozMSswMzowMH/Go+gAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDItMTdUMDg6MTg6MzErMDM6MDAOmxtUAAAAAElFTkSuQmCC' res__turquoise3_50__png='iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAxc3///8AC86tAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+ICEQsSH/yU4XQAAAAOSURBVBjTY2AYBYMJAAABkAABxZvbSQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wMi0xN1QwODoxODozMSswMzowMH/Go+gAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDItMTdUMDg6MTg6MzErMDM6MDAOmxtUAAAAAElFTkSuQmCC' res__yellow_100__png='iVBORw0KGgoAAAANSUhEUgAAAGQAAABkAQMAAABKLAcXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX//wD///+LefOdAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+ICEQsSH/yU4XQAAAAUSURBVDjLY2AYBaNgFIyCUUBPAAAFeAABKXG5/AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wMi0xN1QwODoxODozMSswMzowMH/Go+gAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDItMTdUMDg6MTg6MzErMDM6MDAOmxtUAAAAAElFTkSuQmCC' res__turquoise3_100__png='iVBORw0KGgoAAAANSUhEUgAAAGQAAABkAQMAAABKLAcXAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEUAxc3///8AC86tAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+ICEQsSH/yU4XQAAAAUSURBVDjLY2AYBaNgFIyCUUBPAAAFeAABKXG5/AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wMi0xN1QwODoxODozMSswMzowMH/Go+gAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDItMTdUMDg6MTg6MzErMDM6MDAOmxtUAAAAAElFTkSuQmCC' res__yellow_50__jpg='/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAyADIDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAn/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAYJ/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AoKyqXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//2Q==' res__turquoise3_50__jpg='/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAyADIDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAcJ/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AurGz3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/Z' res__yellow_100__jpg='/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCABkAGQDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAn/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAYJ/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AoKyqXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//2Q==' res__turquoise3_100__jpg='/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCABkAGQDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAcJ/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AurGz3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/Z' # değişken ismi, değişken içeriği, resim ismi local dis="" dic="" ris="" rout="$dosbaz/resim" [ ! -d "$rout" ] && mkdir $rout for v in ${!res__*} ; do dic="${!v}" ; dis=(${v//__/ }) ; ris="${dis[1]}.${dis[2]}" ; echo "$dic" | base64 -d --ignore-garbage > "$rout/$ris" done } res64 EOF0 ## -- dosya.ayar cat <<-"EOF0" > dosya.ayar # Syntax: # girinti-sayısı == dosya-katmanı: # ➊ ➋ ➌ # 1-4|5-8|9-12| ... # kabul edilen harfler: # tüm harfler kişiler (senelere göre): 2018: berkant deniz yakup 2017: berkant deniz yakup türkçe ingilizce: tur-eng.txt isimler: karma isimler.txt isimler a.txt isimler b.txt boş dosya 2.txt EOF0 ## -- ahir chmod ug+x $dr_bashrc $dr_denebash $dr_deneayar $dr_dosyabash $dr_dosyaayar ./dene.bash # clear
Kullan:
-
Kısıtlı moddan çık:
Ctrl-D
(Control ve d tuşları) kullanarak çikabilirsiniz -
Opsiyonlar:
dene.bash --yardim # yardım mesajı gösterir dene.bash --temizle # deney-dosyaları yeniden oluşturulur dene.bash --kalıcı # kalıcı şekilde kur: `dene-regex.desktop` ve `dene` oluşturulur
Göster: Opsiyonlar
-
--kalıcı
Kalıcı olarak kurduğunuzda, terminal-penceresinden
dene
komut’unu kullanarak vewhisker-menu
'yu kullanarak çalıştırabilirsiniz.Göster: Kalıcı şekilde kur
Göster: Desktop panel-kısayolu oluştur
Ayarla:
“Anahtar Teslim” bir program değil bu! Yani, “kullanıcı deneyiminden” ziyade “işlevsellik” odaklı bir altyapı hakim. Bu sebepten dolayı “Kullanım” açıklamaları fakir.
Ayar yapabileceğiniz üç yer
-
Betik Argümanları: Betiği çalıştırken eklenen opsiyonlar.
Göster
-
dene.ayar
dosyasında bazı ayarlar yapmanız mümkün (mesela kısıtlı modda kullanabileceğiniz komutları).Göster
-
dosya.ayar
dosyasında. Bu (şimdilik) biraz karmaşık. özetle:dosya.ayar
'da klasör veya dosyanı ekle,dosya.bash
'deA-Za-z0-9
ve dosya-uzantısı hariç her karakteri silerek değişken oluştur.Göster
Devamı?
Sırada
- Deney-Satırları oluşturmak
- Betik-Eklemeleri yapmak
Şimdilik bitti