Saya mencoba menulis fungsi bash sederhana yang mengambil, sebagai argumennya, sejumlah file dan / atau direktori. Itu harus:
- Sepenuhnya memenuhi syarat nama file.
- Sortir mereka.
- Hapus duplikat.
- Cetak semua yang benar-benar ada.
- Kembalikan jumlah file yang tidak ada.
Saya memiliki skrip yang hampir melakukan apa yang saya inginkan, tetapi jatuh pada penyortiran. Nilai kembalinya skrip sebagaimana mestinya benar, tetapi hasilnya tidak (tidak disortir dan digandakan). Jika saya batalkan komentar | sort -u
seperti yang ditunjukkan, output sudah benar tetapi nilai kembali selalu 0
.
NB solusi yang lebih sederhana untuk menyelesaikan masalah ini disambut baik tetapi pertanyaannya adalah tentang mengapa ini terjadi pada kode yang saya miliki. Artinya, mengapa menambahkan pipa sepertinya menghentikan skrip yang menambah variabel r
?
Ini skripnya:
function uniqfile
{
local r=0
for arg in "$@"
do
readlink -e "$arg" || (( ++r ))
done #| sort -u ## remove that comment
return $r
}
for arg in "$@"
menjadifor arg
. "Jika 'dalam KATA ...;' tidak ada, maka 'dalam "$ @"' diasumsikan. " - help for