SED dosya adındaki öğeyi artan değerlerle bulup değiştir


0

Örnek bir dosya adı Sample-0.0.1-SNAPSHOT.jar(jenkins'te bir maven yapısının sonucu).

Amacım, başarısızlık durumunda çalışan bir kabuk betiği çalıştırmak ve bu betiğin ne yaptığı, dosya adına artan sayılar ekliyor.

Yani bir şey gibi diyelim Sample-0.0.1-1-SNAPSHOT.jar, Sample-0.0.1-2-SNAPSHOT.jar.. vb

(BTW: Dosya adını üretmek için, Jenkins POM dosyasından ilgili bilgileri almak için ortam değişkenleri için aşağıdaki formatı kullanır: $ POM_ARTIFACTID- $ POM-VERSION.jar)

Her nasılsa, eko yapmak ve artımlı sayıları eklemek / değiştirmek için sed'i kullanmak için $ POM-VERSION kullanarak mı düşünüyordum?

Sorun şu ki, bunu nasıl uygulayacağımı bilmiyorum, bu yüzden birisi bana bu konuda yardımcı olabilir, bu harika olurdu! Ayrıca daha iyi bir fikir varsa kesinlikle buna açığım.


2
Bana tam olarak ne istediğin belli değil. Kabuk betiği dosya adını mı geçti? Dosyaları taşıyor mu? Bahsettiğiniz çevre değişkenlerinden birine dayalı yeni bir dosya adı ekliyor mu?
Brian

Ah, benim hatam. Demek istediğim, yapay dosya adını değiştirebilmeyi ve pom dosyasındaki sürüm etiketini değiştirebilmeyi istiyordum.
Fadi

Benim tahminim, en kolay yol, sayıyı arttırmak ve çalışma alanındaki geçici bir dosyaya yazmaktır, ardından derleme her çalıştırıldığında, bu sayıyı alır ve dosya adı + pom dosyasına girer ... vb.
Fadi

"Başarısızlıkta çalışan bir kabuk betiği" ile ne demek istiyorsunuz? Buradaki büyük resim nedir? Bana öyle geliyor ki, jenkinlerin sizin için çözmesi gereken başlık altında bir şeyler yapmaya çalışıyorsunuz.
Bram,

Yanıtlar:


0

Çalışma alanının kalıcı olduğunu varsayalım, işte her derlemeden sonra tetiklenecek bir şey:

if [ -f counterfile.txt ]; then
  num=$(cat counterfile.txt)
else
  num=0
fi
num=$((num+1))
echo $num>counterfile.txt

filename=$POM_ARTIFACTID-$POM-VERSION.jar
newfilename=echo $filename | sed "s/-SNAPSHOT/-$num-SNAPSHOT/"
mv $filename $newfilename

1
"echo num ..." "echo $ num ..." olmalı mı?
Jeff Schaller

Evet olmalı. Düzenleme.
snetch
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.