Ben argüman olarak, bir dizi dosya ve / veya dizin alır basit bir bash işlevi yazmaya çalışıyorum. Olması gerekiyor:
- Dosya adlarını tam olarak nitelendirin.
- Onları sıralayın.
- Kopyaları kaldırın.
- Gerçekten var olan her şeyi yazdırın.
- Varolmayan dosyaların sayısını döndürür.
Neredeyse istediğimi yapan bir senaryom var, ama sıralama düşer. Komut dosyasının durduğu haliyle dönüş değeri doğru, ancak çıktı (sıralanmamış ve yineleniyor) değil. | sort -uBelirtildiği gibi ifadeyi kaldırırsam, çıkış doğrudur ancak dönüş değeri her zaman doğrudur 0.
NB Sorunu çözmek için daha basit çözümler bekliyoruz ama soru gerçekten neden bu kodda meydana geliyor. Yani, neden borunun eklenmesi betiğin değişkeni artırdığını gösteriyor r?
İşte senaryo:
function uniqfile
{
local r=0
for arg in "$@"
do
readlink -e "$arg" || (( ++r ))
done #| sort -u ## remove that comment
return $r
}
for arg in "$@"içinfor arg. "Eğer 'KELİMELERDE ...' mevcut değilse, "in" $ @ "" olduğu varsayılır. " - yardım