서버 경로에서 파일 읽기 - bash

서버 경로에서 파일 읽기 - bash

/tmp/user/abc.txt파일을 읽고 해당 내용을 변수에 저장하려는 쉘 스크립트에 파일 전체 경로를 전달하고 있습니다 .

지금은 다음을 사용하고 있습니다.

export SUBJECT=`echo ${1}`

SUBJECT_1=`cat $SUBJECT`

이것은 아무것도 인쇄하지 않습니다. 또한 파일 내용에는 일부 일본어 문자도 포함됩니다.

답변1

코드에 몇 가지 오류가 있습니다.

  1. 여기에는 백틱 `이 없습니다 SUBJECT_1=cat $SUBJECT.
  2. export SUBJECT=echo ${1}거짓 진술이다. 그것은해야한다 export SUBJECT="${1}".
  3. 백틱은 하위 쉘에서 코드를 실행하므로 파일 내용을 인쇄하지 않습니다. 인쇄하려면 다음 줄을 추가해야 합니다 echo "${SUBJECT_1}".

이러한 문제를 해결하면 코드가 작동하지만 고려해야 할 몇 가지 팁은 다음과 같습니다.

  1. $(code)백틱을 사용하는 대신 하위 쉘에서 코드를 실행하려면 다음을 사용해야 합니다.이 스레드.
  2. 다음에 쉘 코드가 막힐 때 이것을 시도해 보십시오.이것첫째, 강력한 셸 코드 디버깅 기능이 있으며 명령줄 버전을 찾을 수 있습니다.
  3. 변수에는 항상 큰따옴표를 사용하십시오. 이렇게 하면 변수 분할을 방지할 수 있습니다. 당신은 그것에 대해 읽을 수 있습니다여기.

관련 정보