Tüm git depolarını almak için bir bash işlevi yazıyorum, ancak tüm git deposu yol adlarını patharray
dizisine depolamak istediğimde bir sorunla karşılaştım. İşte kod:Bir pipeline komutundan dizi değişkeni ekleme
gitrepo() {
local opt
declare -a patharray
locate -b '\.git' | \
while read pathname
do
pathname="$(dirname ${pathname})"
if [[ "${pathname}" != *.* ]]; then
# Note: how to add an element to an existing Bash Array
patharray=("${patharray[@]}" '\n' "${pathname}")
# echo -e ${patharray[@]}
fi
done
echo -e ${patharray[@]}
}
Ben patharray
diziye bütün depo yolları kaydetmek istiyorum ama locate
ve while
komuta oluşur pipeline
dışına alamıyor.
pipeline
komutunda diziyi bulabilirim, yorumsuz komut # echo -e ${patharray[@]}
iş göremezse iyi çalışır, bu yüzden sorunu nasıl çözebilirim?
Ve export
komutunu denedim, ancak patharray
hattını geçemeyeceği anlaşılıyor.
'yankı -e' da (onlar ... orada olmak çok büyük olasılıkla değil) yollarında tersbölüleri genişleyecektir. –
Hatırlattığınız için teşekkürler, 'printf' kullanmak daha iyi bir yoldur. – zhenguoli