파일명: hello world.txt
위 파일명 대로라면 for문은 한바퀴만 돌아야 하지만
#!/bin/bash for fileName in `ls /data/` do echo $fileName done
실제로는 hello world.txt
이렇게 됩니다.. 어떻게 하면 공백 문제를 해결 할 수 있을까요? ls를 꼭 사용해야 합니다
for 구문은 공백이 필드구분자로 인식됩니다. 따라서 "" 를 넣어서 한단어로 인식시키면 원하시는 출력문이 나올겁니다.
#!/bin/bash
for fileName in "`ls /data/`" do echo $fileName done
#!/bin/bash for fileName in /data/* do echo $fileName done
$ cat hello.sh #!/bin/bash for fileName in $(ls $PWD | tr ' ' '$'); do echo $fileName | tr '$' ' ' done $ ls 'hello world.txt' hello.sh $ sh hello.sh hello world.txt hello.sh
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
"" 를 사용하시면 됩니다.
for 구문은 공백이 필드구분자로 인식됩니다.
따라서 "" 를 넣어서 한단어로 인식시키면 원하시는 출력문이 나올겁니다.
#!/bin/bash
for fileName in "`ls /data/`"
do
echo $fileName
done
#!/bin/bash
tr 사용
댓글 달기