Herkes bu komutun ne anlama geldiğini açıklayabilir mi?
PATH="${GZIP_BINDIR-'/bin'}:$PATH"; export PATH
Herkes bu komutun ne anlama geldiğini açıklayabilir mi?
PATH="${GZIP_BINDIR-'/bin'}:$PATH"; export PATH
Yanıtlar:
${GZIP_BINDIR-'/bin'}bir bashparametre genişletme modelidir. Gönderen man bash:
${parameter:-word}
Use Default Values. If parameter is unset or null,
the expansion of word is substituted. Otherwise, the value of parameter
is substituted.
Bu porsiyondan hemen önce man sayfasının (bildirim için @jwodder sayesinde):
Omitting the colon results in a test only for a parameter that is unset.
Manpage'in dediği gibi, değişkenin varsayılan değerini ayarlayacaktır GZIP_BINDIR. Eğer GZIP_BINDIR(kullanmadığınız olarak null dışında önceden ayarlanmış bir değere sahip :bu değer kullanılacaktır), aksi /bindeğişkenin değeri olarak kullanılacaktır GZIP_BINDIR.
Öte yandan null değerleri de test etmek istiyorsanız, bu kalıbı kullanın (include :):
${GZIP_BINDIR:-'/bin'}
Bundan sonra, $PATHdaha önce tuttuğu değerlere genişletilecektir. Yani, PATHdaha önce sahip olsaydı:
/usr/sbin:/usr/bin
Şimdi PATHolacaksınız (dikkate GZIP_BINDIRalınmadı):
/bin:/usr/sbin:/usr/bin
export PATHbunu PATHtüm alt süreçlerin kullanımına sunacaktır .
:-: " Alt dize genişletmesi gerçekleştirilmediğinde, aşağıda belgelenen formları kullanarak (örn. :-), bash ayarlanmamış veya null bir parametre olup olmadığını test eder. İki nokta üst üste işareti yalnızca ayarlanmamış bir parametre için test
PATHve exporttek komutla içine aşağıdaki gibi:export PATH="${GZIP_BINDIR-'/bin'}:$PATH"
Parametre genişletmesinin içindeki tire işaretinden önce gerçekten iki nokta üst üste yok ${GZIP_BINDIR-'/bin'}mu?
Bu tür bir yapı neredeyse her zaman iki nokta üst üste ile yazılır, ${GZIP_BINDIR:-'/bin'}yani "$ GZIP_BINDIR NULL veya unset ise, onu" / bin "olarak ayarlayın"
Ancak, verilen sözdizimi olan geçerli, ama nadir. ${GZIP_BINDIR-'/bin'}(iki nokta üst üste işareti yok) "$ GZIP_BINDIR ayarlanmamışsa, '/ bin' olarak ayarlayın" anlamına gelir. Ayarlanmışsa (bildirilmişse) ancak kendisine atanan hiçbir şey yoksa (örn. NULL) hiçbir şey eklenmez.
Kolon olarak gerçi burada bir hata olabilir aşağıdaki değişken yapı (...} :$ PATH ...) olacak $ GZIP_BINDIR seti ama null ise hala yerleştirilebilir. Bu, $ PATH başına bir iki nokta üst üste ekleyeceğinden, önce geçerli dizinin aranmasına neden olur.
Çoğu kişi tarafından bir güvenlik sorunu olarak kabul edilir, çünkü standart komutlarla aynı ada sahip kötü amaçlı bir programın sadece geçerli dizine yerleştirilerek çalıştırılmasını kolaylaştırır.
$ GZIP_BINDIR ayarlanmış ancak NULL (boş) olarak ayarlanmışsa $ PATH değerini değiştirmeden bırakmak için doğru sözdizimi ${GZIP_BINDIR-'/bin:'}$PATH; export PATH
$ GZIP_BINDIR ayarlanmamışsa veya ayarlanmış ancak NULL ise $ PATH değerini değiştirmeden bırakmak için doğru sözdizimi ${GZIP_BINDIR:-'/bin:'}$PATH; export PATH
Bu komut PATH değişkenini güncelleştirir.
Bu PATH, yürütülebilir programların bulunduğu dizin kümesini belirten bir ortam değişkenidir.
PATH="${GZIP_BINDIR-'/bin'}:$PATH";
Bu GZIP_BINDIR, önceki PATH'ye çıkış başka bir değişkenin değerini ekler, bunun yerine / bin kullanır ve bunu PATH'a ekler
export PATH
İhracat tüm alt süreçleri için kullanılabilir PATH ayarlamak için kullanılan ve Okuma altkabuklarda olan bu hakkında daha fazla bilgi için
Bunun statik olmadığını ve kabuğunuzdan çıktıktan sonra onu kaybedeceğinizi not etmelisiniz.
Bu PATH düzenlemesini kalıcı hale getirmek için bu satırları .bashrc
gedit .bashrc
ve satırı ekle
export PATH="${GZIP_BINDIR-'/bin'}:$PATH"
sonra komutu çalıştırın
source .bashrc
:içinde${GZIP_BINDIR-'/bin'}Şart değil".${parameter-word}man sayfasında da görünmese de geçerlidir.