我正在修改在https://www.cyberciti.biz/faq/bash-scripting-using-awk/中找到的脚本,但是在下面的情况下,我仍然坚持不创建数组的原因。我查了一下如何在bash中爆炸字符串,很多网站都说要使用tr,所以我试了一下:
FILES="$(ldd $pFILE | awk '{ print $1$2$3 }' | egrep -v ^'/')"
for i in $FILES
do
arr=()
arr=$(echo $i | tr '=>' ' ')
echo "raw arr[0]=${arr[0]}"
echo "raw arr[1]=${arr[1]}"
done所有结果表明,arr1是空的,arr有整个行,除了=>被更改为双空间(我想它应该将其更改为单个空格)。
> raw arr[0]=libpthread.so.0 /lib/i386-linux-gnu/libpthread.so.0
> raw arr[1]=发布于 2022-07-27 06:40:45
您需要将这些值放入()中来创建一个数组。
arr=($(echo "$i" | tr '=>' ' '))在此之前没有必要使用arr=()。
https://stackoverflow.com/questions/73133282
复制相似问题