为什么$PARTS是空白的
DIR=/Users/ishandutta2007/Projects/yo
IFS='/' read -ra PARTS <<< "$DIR"
echo $PARTS编辑:谢谢你的建议,但我想用IFS来解决这个问题。
发布于 2020-06-26 04:19:07
数组不是空的,$PARTS扩展到数组的第一个元素,该元素碰巧是空的,并且与${PARTS[0]}相同:
$ declare -p PARTS
declare -a PARTS=([0]="" [1]="Users" [2]="ishandutta2007" [3]="Projects" [4]="yo")若要将所有数组元素打印为单独的单词,请使用"${PARTS[@]}":
$ printf '%s\n' "${PARTS[@]}"
Users
ishandutta2007
Projects
yo要获得最后一个元素,可以使用负索引:
$ echo "${PARTS[-1]}"
yo但是使用参数展开更容易获得最后一个元素:
$ echo "${DIR##*/}"
yo这将从*/中删除最长的前缀模式DIR。
https://unix.stackexchange.com/questions/595143
复制相似问题