I am writing a bash function to get all git repositories, but I have met a problem when I want to store all the git repository pathnames to the array patharray
. Here is the code:
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[@]}
}
I want to save all the repository paths to the patharray
array, but I can't get it outside the pipeline
which is comprised of locate
and while
command.
But I can get the array in the pipeline
command, the commented command # echo -e ${patharray[@]}
works well if uncommented, so how can I solve the problem?
And I have tried the export
command, however it seems that it can't pass the patharray
to the pipeline.