IFS=$'\n'의 정확한 의미는 무엇입니까?
에서 '보다 낫다'를 , '보다 낫다'입니다.IFS「 」 「 」 、 「 。
IFS=$'\n'
- 달러 표시는 정확히 무슨 뜻입니까?
- 이 경우 어떤 역할을 합니까?
- 이 특정 사용법에 대한 자세한 내용은 어디서 볼 수 있습니까? (Google에서는 검색에 특수 문자를 사용할 수 없으며, 그 외에는 무엇을 찾아야 하는지 알 수 없습니다.
는 무엇이 있는지 안다.IFS이며, '환경변수'는 입니까?\n는 ( '줄바꿈'이나 '줄바꿈'이나 '줄바꿈'이나 '줄바꿈'이나 '줄바꿈'이나 '줄바꿈'이나 '줄바꿈'이나 '줄바꿈'이나 '줄바꿈'이나 '줄바꿈' 같은 형식을 쓰면 어떨까요?IFS="\n"(일본어판)
예를 들어 파일의 모든 행을 루프하고 for 루프를 사용하는 경우 다음과 같이 할 수 있습니다.
for line in (< /path/to/file); do
echo "Line: $line"
done
이것은만,,, however however however however however however however however however however however however however however however however however however however however however however however however however however however however however however however however however however 가 아니면 제대로 되지 않습니다.IFS라인 피드 문자로 설정됩니다.동음
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
주의: 같은 일을 하는 다른 방법은 필요 없습니다.다른 많은 방법을 이미 알고 있습니다.그것만 궁금해요.$'\n'가가설 설명 ??? ??? ???
통상은 「」입니다.bash그러니까 이렇게 쓰면 돼요.\n ★★★★★★★★★★★★★★★★★」"\n" ★★★★★★★★★★★★★★★★★」'\n'지입니니다다n 번째 뒤에 ('')가 계속됩니다.n(2월 2일)
$'somestring'는 이스케이프 시퀀스를 가진 스트링 리터럴 구문입니다.그래서 다르게'\n',$'\n'사실 줄 바꿈입니다.
구조물에 공식 이름을 붙이기 위해: 형식의 문자열$'...'는 ANSI C 따옴표로 묶인 문자열이라고 불립니다.
즉, [ANSI] C 문자열과 마찬가지로 백래시 이스케이프 시퀀스가 인식되어 문자 그대로 동등한 값으로 확장됩니다(지원되는 이스케이프 시퀀스의 완전한 리스트에 대해서는, 이하를 참조해 주세요).
이 확장 후 문자열은 문자열과 동일하게 동작합니다. 즉, 셸 확장의 대상이 아닌 리터럴로 취급됩니다.
를 들면, 「 」입니다.$'\n'입니다(이러한 문자열은 리터럴바쉬 문자열 리터럴입니다.쾅쾅거리다'...' ★★★★★★★★★★★★★★★★★」"...")[1]는 할 수 없습니다.
또 하나의 흥미로운 기능은 ANSI C 따옴표로 둘러싸인 문자열이 로 이스케이프(단일 따옴표)될 수 있다는 것입니다.'...'은 할 수 없습니다.
echo $'Honey, I\'m home' # OK; this cannot be done with '...'
지원되는 이스케이프 시퀀스 목록:
백슬래시 이스케이프 시퀀스(존재하는 경우)는 다음과 같이 디코딩됩니다.
\a 경보(벨)
\b 백스페이스
\e \E 이스케이프 문자(ANSI C가 아님)
\f 폼 피드
\n 줄바꿈
\r 캐리지 리턴
\t 가로 탭
\v 세로 탭
\ 백슬래시
\' 작은따옴표
\"큰따옴표
\nnn 값이 8비트 문자(1~3자리)
\xH 값이 16진수 값 HH(1자리 또는2자리 16진수)인 8비트 문자
\uHHH 값이 16진수 값 HHH(1~4자리 16진수)인 Unicode(ISO/IEC 10646) 문자
\UHHHHHH Unicode(ISO/IEC 10646) 문자(값이 16진수 값 HHHHHHHHHH(1~8자리))
\cx 컨트롤 x 문자
확장된 결과는 달러 기호가 없었던 것처럼 단일 따옴표로 묶습니다.
[1] 그러나 실제 줄바꿈을 '...' 및 '...' 문자열에 포함할 수 있습니다. 즉, 여러 줄에 걸친 문자열을 정의할 수 있습니다.
http://www.linuxtopia.org/online_books/bash_guide_for_beginners/sect_03_03.html 에서 :
"$'STRING" 형식의 단어는 특별한 방식으로 처리됩니다.ANSI-C 표준에서 지정한 대로 백슬래시 이스케이프 문자를 사용하여 단어가 문자열로 확장됩니다.백슬래시 이스케이프 시퀀스는 Bash 매뉴얼에 기재되어 있습니다.찾았다
스크립트가 적절한 ANSI-C 표준에 따라 회선 피드를 회피하도록 강제하고 있는 것 같습니다.
- 이 "IFS" - " "OLDIFS=$IFS는 필요 없습니다.IFS를 로 실행하여 IFS를 않도록 .
ar=(123 321); ( IFS=$'\n'; echo ${ar[*]} )
게다가 난 네가 예전 IFS를 완전히 회복했다고 생각하지 않아.로 묶어야 .OLDIFS="$IFS".
ANSI C 따옴표로 둘러싸인 문자열이 키포인트입니다@mklement0 덕분입니다.
명령어 od를 사용하여 ANSI C 따옴표로 묶은 문자열을 테스트할 수 있습니다.
echo -n $'\n' | od -c
echo -n '\n' | od -c
echo -n $"\n" | od -c
echo -n "\n" | od -c
출력:
0000000 \n
0000001
0000000 \ n
0000002
0000000 \ n
0000002
0000000 \ n
0000002
출력으로 의미를 명확하게 알 수 있습니다.
질문:.
이죠?IFS=$'\n'
간단한 답변:
Hey Bash! 내부 필드 구분자(IFS)를 새 줄로 설정합니다.
죠?IFS
IFS는 Bash가 문자열을 처리할 때 단어/항목 경계로 사용하는 문자입니다.
기본적으로 공백, 탭 및 줄바꿈 문자로 설정됩니다.
예 1:
「」에는합니다.IFS
string="first second:third forth:fifth"
for item in $string; do
echo "$item"
done
출력:
first
second:third
forth:fifth
예 2:
★★IFS로로 합니다.:
# Set the IFS to collon (:) character
IFS=:
string="first second:third forth:fifth"
for item in $string; do
echo "$item"
done
출력:
first second
third forth
fifth
변수에서 값을 검색하는 것과 같습니다.
VAR='test'
echo VAR
echo $VAR
차이가 있기 때문에 기본적으로는 달러 기호가 내용을 평가합니다.
언급URL : https://stackoverflow.com/questions/4128235/what-is-the-exact-meaning-of-ifs-n
'programing' 카테고리의 다른 글
| 명령줄 또는 배치 파일에서 Excel 매크로를 실행하는 방법 (0) | 2023.04.14 |
|---|---|
| .Net Excel Interop 워크시트 삭제 (0) | 2023.04.14 |
| Windows Scipy 설치: Lapack/Blas 리소스를 찾을 수 없음 (0) | 2023.04.14 |
| 셸 내의 변수로 출력을 리다이렉트하려면 어떻게 해야 하나요? (0) | 2023.04.14 |
| env: bash\r: 해당 파일 또는 디렉토리가 없습니다. (0) | 2023.04.14 |