IFSが機能しない

IFSが機能しない

$PARTSが空の理由

DIR=/Users/ishandutta2007/Projects/yo
IFS='/' read -ra PARTS <<< "$DIR"
echo $PARTS

編集:代替案を提案していただきありがとうございます。しかし、IFSの問題を解決したいと思います。

答え1

配列は空ではなく、空$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

関連情報