"! 23" dizesi, komut satırında "docker" ile değiştirildi


17

Parametre ile bir Maven komutu var:

mvn test -Dcommon_password=!23foo

Bu komut şu şekilde yürütülüyor:

mvn test -Dcommon_password=dockerfoo

Yani !23ikame ediliyor docker. Bu neden oluyor ve nasıl önleyebilirim?

Yanıtlar:


43

Bu, geçmiş genişlemesidir : geçmişinizdeki!23 23. komutla değiştirilir.

Bundan kaçınmak için tek tırnak kullanın:

mvn test '-Dcommon_password=!23foo'

5
veya set +H/set +o histexpand
ilkkachu

12
Bu, potansiyel olarak her türlü kabuk metakarakterini içerebilen bir şifredir. M. Kitt'in cevabındaki gibi doğru şekilde alıntı yapmak ve kaçmak, ortaya çıkabilecek olasılıklardan sadece birini devre dışı bırakmaktan daha iyidir . Tabii ki, işlem argümanlarında bir parola olmaması ilk etapta daha iyi olurdu . (-:
JdeBP

@JdeBP benim sorum sadece basitlik nedeni ile düz bir metin bir şifre gösterdim. Gerçek bir projede bu argüman değeri bir Jenkins gizli kimlik bilgisinden alır. Yani maskeli ve güvenli.
Vitalii Plagov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.