쉘 변수 케이스에 대한 참고 사항입니다.

쉘 변수 케이스에 대한 참고 사항입니다.

dir1이라는 새 디렉터리를 만들었습니다.

그런 다음 터치 명령을 사용하여 사과 바나나 당근 대추 계란 생선 포도 햄을 추가했습니다.

그 후 파일을 만들었습니다 Wildcards.sh(btw, nano를 사용하여 파일을 만듭니다).

#!/bin/bash

# This script will include wildcards

find . dir1
echo The contents of dir1 are:$find
echo

그런 다음 실행하여 작동하는지 테스트합니다. 그렇긴 하지만 나는 그러고 싶지 않아요.

나는 그것을 다음과 같이 실행한다./Wildcards.sh

그리고 얻었습니다

.
./ham
./egg
./grape
./date
./Wildcards.sh
./apple
./fish
./carrot
./banana
find: 'dir1': No such file or directory
The contents of dir1 are:

출력은 다음과 같아야 합니다. The contents of dir1 are: apple banana carrot date egg fish grape ham

내 실수를 찾아내도록 도와주세요.

답변1

dir1이 작업 디렉터리인 경우 dir1을 찾을 수 없습니다. "$find" 변수에는 아무것도 넣지 마세요.

FIND=$(cd ~/dir1; echo *)

echo "The contents of dir1 are: $FIND"

홈 폴더에서 작업 디렉터리를 dir1로 변경한 다음 bash가 숨겨지지 않은 모든 항목("*")을 표시하도록 합니다. 결과는 FIND 변수에 저장됩니다(그러나 오류가 있으면 FIND에도 저장됩니다). 숨겨진 파일과 디렉터리도 원한다면 다음과 같습니다.

FIND=$(cd ~/dir1; echo .* *)

답변2

와서 시도해 보세요

result=$(find ~/dir1)
echo "The contents of dir1 are: $result"

또는

echo "The contents of dir1 are: $(find ~/dir1)"

분해:

(제가 정확하지 않다면 용서하세요. 저는 Bash에 최고가 아닙니다.)
result=$(find ~/dir1)실행 find ~/dir1한 다음 results에 저장하고, s
$(command)내에서 명령을 실행 ()하고 명령의 STDOUT(명령의 표준 출력/출력)을 임시 변수로 사용합니다. , 대신 이것을
사용하여 다음과 같은 작업을 수행할 수도 있습니다 . 도움이 되기를 바랍니다. 형식이 좋지 않은 점 양해해 주시기 바랍니다. 이것은 첫 번째 게시물입니다. :P${result}echo "${result}asdf"

답변3

언급되지 않은 다른 요구 사항이 없으면 필요한 라인은 다음과 같습니다.

echo The contents of dir1 are:$(ls dir1)

Bash 스크립트에서 사용하거나 명령줄에서 직접 사용할 수 있습니다. 예를 들어 나중에 사용할 목적으로 파일 이름을 변수에 넣으려면 다음을 수행하십시오.

files=$(ls Wallpapers)
echo The contents of dir1 are:$files

답변4

귀하의 스크립트가 수정되었습니다.

#!/bin/bash

# This script has no wildcards

find_output="$(find dir1)"
echo 'The contents of dir1 are:'"$find_output"
echo

기존 답변에 모두 오류가 있어서 다른 답변을 추가해야겠다고 생각했습니다.

일부 오류는 다음과 같습니다.

  • 프로세스의 출력이 변수에 입력된다고 가정하는 것 같습니다. 요청하지 않는 한 이는 그렇지 않습니다.
  • find.첫 번째 인수로 a가 필요하지 않습니다 . 네, 자주 있습니다만...
  • 다음 문제는 따옴표를 사용해야 한다는 것입니다. 나는 이것이 아직 오류를 일으키고 있다고 생각하지 않습니다. 어떤 사람들은 모든 인용문이 꼭 필요한 것은 아니라고 말할 것입니다. 그것은 맞습니다. 그러나 이는 안전하며 완전히 마스터할 때까지 포함할 수 있습니다. 나중에 포함할 수도 있습니다.
  • 그렇다면 귀하의 의견은 올바르지 않습니다. 나는 리뷰가 거의 항상 틀리기 때문에 싫어합니다. 댓글은 이유만 설명할 수 있거나, 언어가 너무 약해서 의도를 명확하게 표현할 수 없을 때 사용됩니다.

쉘 변수 케이스에 대한 참고 사항입니다.

쉘 변수는 소문자여야 합니다. 이에 대한 표준이 있습니다. 대문자로 만들면 가끔 예상치 못한 오류가 발생할 수 있습니다.

관련 정보