现在我可以用这段代码来做到这一点,但是有更好的方法吗?
output=`echo "list" | hbase shell`
output=`echo ${output} | cut -d'[' -f 2 | cut -d']' -f 1`
IFS=',' read -ra tables <<< "$output"
for tb in "${tables[@]}"; do
echo "${tb}\n"
done
答案 0 :(得分:2)
您可以将其简化一些,如下所示。这不涉及任何中间变量声明,希望对您有所帮助。
echo 'list' | hbase shell | sed -e '1,/TABLE/d' -e '/seconds/,$d' |
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "$line"
done