[Çözüldü] Komut çıktısını değişkene atama

Başlatan mesuutt, 10 Mart 2010 - 16:16:33

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

mesuutt

merhaba arkadaslar bu site ubuntu sitesi fakat ben debian kullanmama ragmen bana yardım edebileceğinizi dusunuyorum..

sen bir shell script yazdım
yapmak istediğim olay şundan ibaret

fdisk -l | grep NTFS yazdıgımda cıktı :
/dev/sda1   *           1       12748   102398278+   7  HPFS/NTFS  boyle

şimdi ben bu cıktının /dev/sda1 yazan  kısmını bir değişkenen nasıl aktarıp kullanabılırm... ?

--> [ mesuutt  ] <--

BayboraKaan

Konuyu uygun bölüme taşıdım.

heartsmagic

Deneyemediğim için emin olamamakla beraber şöyle  bir şey olabilir:

fdisk -l | grep NTFS | cut -d" " -f1 | xargs echo

xargs echo sadece örnek olsun diye verildi. xargs ile farklı şeyler de yapabilirsin, ufak bir araştırma yeterli olacaktır.

Konu Debian'dan bağımsız olduğu için Bash bölümünde kalsa daha iyi olur gibi geldi bana :)
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.

mesuutt

fdisk -l | grep NTFS | cut -d" " -f1 | xargs echo
tam olarak bu kod ne yapıyo ben kendime gore uyarlamak istediğimde nereleri değiştirmem gerekir.
mesela ben /dev/sda1 yazan kısmı baska bir tex dosyasına yazdırıyorum ve bunu >> dosya ismi komutuyla yapıyorum.
neyi kesip alıcamı bu kod saıl anlıyor ...?
--> [ mesuutt  ] <--

bytan

fdisk -l | grep NTFS | cut -d" " -f1 | xargs echo

Fdisk -l ile veri elde edersin. Bunu pipe (|) ile grep uygulamasına aktarırsın. Grep uygulamasında aktarılan veri içerisindeki NTFS satırlarını ayıklarsın. Bu ayıkladığın satırları tekrar pipe ile cut uygulamasına aktarırsın. Cut parametreleri ile de, ilk sütunda olan /dev/sda1 değerini alırsın ve bunu da tekrar pipe ile kullanacağın uygulamaya aktarırsın.

Daha fazla bilgiyi ve açıklamaları bash programlama belgelendirmelerini takip ederek edinebilirsin. Başlangıç için acemiler bölümündeki kitapların içindeki temel anlatımları kullanabilirsin.

Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

ebubekirs

Ek olarak;

Buradaki

cut -d" " -f1

ifadesi, çıktıdaki ilk boşluk karakterine kadar olan değeri alacağını belirtir.
Dünyaya gelen de benim, dünyadan giden de benim

heartsmagic

@bytan çok güzel açıklamış, @ebubekirs de detaya inmiş.
Eğer amacın sadece dosyaya aktarmaksa son bölüme ihtiyacın yok.
fdisk -l | grep NTFS | cut -d" " -f1 > dosya_ismi ile yapabilirsin bunu. Sen ilk iletinde aldığın sonuçları değişken olarak kullanmak istiyordum dediğin için xargs örneğini verdim ben. xargs bu gibi durumlarda sonuçları değişken olarak kullanmaya yarar.
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.

mesuutt

Hepinize cok teşekkur ediyorum sorunumu hala cozemedim ama sitede biraz daha arastırma yapıcam.

eyvallah  ;D
--> [ mesuutt  ] <--

heartsmagic

Sen sorununu söylersen bilen birisi varsa fikrini beyan edecektir. Kesin çözülür diyemiyorum ancak bir kişinin düşünmesi yerine birden fazla kişinin düşünmesi daha iyidir sanırım.
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.

mesuutt

hepinize cok tesekkur edeirm cok yardımcı oluyorsunuz ama tam olarak hala istediğim şeyi elde edemedim.

ben fdisk -l | grep NTFS | cut -d" " -f1 | xargs bunu kullanıyorum echo ettiğimde istediğim yeri getiriyor fakat benim yapmak sitediğim

bu sonucu bir değişkene aktarmak.Sebep ne diye sorarsanız eger diyelim ben bu script parcasının verdiği sonucu $1 e aktarmıs olayım.Şoyle kullanacagım.
$1 "bir kac kelime "  >> dosya.txt

tam olarak anlatabildimmi derdimi bilmiyorum ama anlayan olur heralde :D

bunun daha kısa br yolu varsa onuda ogrenmek isterim yani :)
şimdiden teşekkurler .....
--> [ mesuutt  ] <--

heartsmagic

Sen niyetini böyle biraz daha ayrıntılı anlatırsan bizler daha fazla yardımcı oluruz. Hani sorunun sadece tek buysa, bir şekilde halledilir. Fakat kabukla yoğun bir şekilde çalışacaksan mutlaka programlama belgelerine (bash için) bakman lazım. Aksi takdirde sürekli sormak zorunda kalırsın ki bizler de ne kadar tecrübeliyiz tartışılır.

İstediğin şey şu şekilde olur sanırım:

degisken=`fdisk -l | grep -i ntfs | cut -d" " -f1`
echo $degisken birkaç kelime >> dosya.txt


Bunu root yetkileriyle yaptığını var sayıyorum. Zira Ubuntu üzerineysen fdisk sonuç vermez, sudo ister. Eğer sudo kullanılırsa parola sorar, onu da bertaraf etmen gerekecektir.
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.

mesuutt

valla heartsmagic çok sağol, yardım eden butun arkadaslara cok tesekkur ederim. bu sefer basardım olayı. :D
yapmak istediğim ntfs disklerini otomatık baglamaktı sanırsam oldu.

amacıma ulastım size gore basit birşeydir bu yaptıgım ama bana gore buyuk bir iş :)
ben denedim çalısıyor şuan :)
sizlede paylasım ...


#!/bin/bash

echo "Ntfs-3g Kuruluyor...."
apt-get install ntfs-3g
a=`fdisk -l | grep -i NTFS | cut -d" " -f1`
echo  "Bağlamak istediğiniz NTFS diskinin Adı Ne olsun ? "
read Diskadi
mkdir /mnt/$Diskadi
echo $a '/'$Diskadi' ntfs-3g defaults 0 0 ' >> /etc/fstab
mount -t ntfs-3g $a /mnt/$Diskadi -o force

--> [ mesuutt  ] <--

heartsmagic

@mesutt, eline sağlık. Sonuçta kendi yaptığın bir şey olduğu için ayrı bir tat verecektir sana. Küçük ama iş görecek bir uygulama olmuş. Hani ntfs-config aracı bunu zaten yapsa da :) sanırım amaç kabuk programlama öğrenmek. Konuyu etiketleyip kapatıyorum. Aklında bulunsun birden fazla ntfs bölüm varsa olaylar değşir. İşte o noktada dediğim gibi kitaplara baş vurmalısın. Mesela döngüler gibi.
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.