IFS 사용 방법을 이해해 보세요.

IFS 사용 방법을 이해해 보세요.

쉘 변수를 사용하는 방법을 이해하려고 합니다 IFS. 다음 코드가 있습니다.

#!/bin/bash

ourpath=$PATH
oldIFS=$IFS
IFS=":"
echo "ourpath = $ourpath"
for directory in "$ourpath"; do
    echo "directory = $directory"
done

IFS=$oldIFS

수익금으로 실행하세요 bash test.sh.

ourpath = ~/bin:/home/<user>/anaconda3/bin:/home/<user>/.local/bin:/home/<user>/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:~/scripts
directory = ~/bin:/home/<user>/anaconda3/bin:/home/<user>/.local/bin:/home/<user>/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:~/scripts

directory하지만 디렉토리를 순회 하고 싶습니다 . 여기서 무엇이 문제입니까 $PATH?:

답변1

이는 공백과 정확히 동일합니다. 인용하면 $ourpath분할되지 않습니다. 따옴표를 제거하면 원하는 결과를 얻을 수 있습니다.

즉:

for directory in $ourpath ; do
    echo "directory = $directory"
done

$ourpath보너스 포인트: 공백이 포함되어 있는지 여부는 중요하지 않습니다. 왜냐하면 IFS공백이 포함되어 있으므로 :분할되기 때문입니다.:

관련 정보