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
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))"
Nasıl Bash komut dosyası bir parola il...
Nasıl sahnelenecek olan değişiklikleri...
Nasıl ve bash ile bir dosya için hem s...
Nasıl tıklanabilir bir etiket olan bir...
Nasıl bir değişkeni bash ayarlanmış ol...