안녕하세요 글을 쓰면서 이유를 묻고 싶습니다.
ls -l
각 줄 뒤에 새 줄이 있지만 변수에 할당하면
myVariable=`ls -l`
그런 다음 해당 변수를 에코합니다.
echo $myVariable
한 줄로 다 연결했는데... 감사합니다
답변1
이 질문은 두 가지 별도의 문제를 야기합니다.
명령 은
ls
파일이나 파이프에 쓸 때와 터미널에 쓸 때 다르게 동작합니다. 이 두 명령을 비교하면 이를 알 수 있습니다.ls ls | cat
첫 번째 예에서는
ls
터미널에 쓰고 있으므로 사람이 읽을 수 있도록 출력 형식을 지정하는 것을 볼 수 있습니다. 두 번째 예에서는ls
파일이나 파이프에 쓰고 있으므로 한 줄에 하나의 항목을 생성하는 것을 볼 수 있습니다.-1
또는 매개변수를 사용하여-C
두 설정을 모두 재정의 할 수 있습니다 .변수에 할당하면
ls -l
줄 바꿈이 유지됩니다 . 그러나 귀하의 경우 변수를 사용할 때 변수를 인용하지 않으므로 "공백"(표시되는 문자를 인쇄하지 않는 모든 것)은 실행될 때마다 단일 공백으로 변환됩니다. 결과 비교var=$(ls -l); echo $var var=$(ls -l); echo "$var"
바라보다$VAR 대 ${VAR} 및 인용 여부자세한 내용을 알아보세요. 또한 나는 에서 제안한 중복 답변을 $(...)
선호합니다 .`...`
백틱 이해이유를 설명했습니다.