SORU
9 AĞUSTOS 2010, PAZARTESİ


bash - nasıl boru için cd komutu olan sonucu

Bu aptalca bir soru olduğunu biliyorum, ama nasıl cd komutu olan bir sonucu boru olabilir miyim?

Bunu yapmak için çalışıyorum

which oracle | cd
cd < which oracle

Ama bunların hiç biri işe yaramadı :(

Bunu başarmak için bir yol elbette kopyala/yapıştır yerine () var mı?

Şimdiden çok teşekkürler!

Edit : düşündüm de, bu komut, hedef dosya klasör/dizin olmadığı için başarısız olur.

Düşünme ve sondaki kurtulmak için iyi bir yol "/" bölümü () sed veya awk, hatta Perl:) oracle . ben dışarıda çalışıyorum yani

Edit : Tamam sonunda buldum.

cd `which oracle | sed 's/\/oracle//g'`

CEVAP
9 AĞUSTOS 2010, PAZARTESİ


Komutu, standart girdi parametreleri bekliyor durumlarda boru kullanın. ( More on this ).

cd komutu ile bu durum böyle değil. Dizin komut argüman. Böyle bir durumda, komut ikamesi kullanabilirsiniz. Backticks veya $(...) komut değerlendirmek için kullanın, değişken.. depola

path=`which oracle`
echo $path # just for debug
cd $path

çok daha basit bir şekilde yapılabilir, ancak:

cd `which oracle`

ya

cd $(which oracle)

backtick gösterim eşdeğerdir, ama (backticks kesme ile karışabilir) tavsiye edilir

.. ama istediğiniz gibi görünüyor:

cd $(dirname $(which oracle))

yuvalama kolayca kullanabileceğiniz gösterir

$(...) (backticks) de bu sonuç sonunda boşluk.. içerebilir zaman yardımcı olan, çift tırnaklı dizeleri, çalışmak

cd "$(dirname $(which oracle))"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • huyked

    huyked

    28 Mart 2008
  • Pituvision

    Pituvision

    11 Mart 2006
  • Tinkernut

    Tinkernut

    28 Aralık 2006