![간단한 스크립트 문제](https://linux55.com/image/102931/%EA%B0%84%EB%8B%A8%ED%95%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%AC%B8%EC%A0%9C.png)
AIX의 스크립트에 문제가 있는데 오류를 찾을 수 없습니다. 두 디렉터리 간에 파일을 복사하고 싶지만 먼저 해당 디렉터리가 존재하는지 확인하세요. 내가 하고 있는 일은 이것이다:
PATH=/home/fede/
PATH2=/home/prueba/
if [ -d $PATH ];
then
find $PATH -type f -exec cp {} $PATH2 \;
echo "se copiaron los archivos correctamente"
else
echo "no existe"
fi
하지만 다음 메시지를 받았습니다: ./scriptTB[5]: find: not found. se copiaron los archivos correctamente
. 마지막 줄에는 스페인어로 "파일이 올바르게 복사되었습니다"라고 적혀 있습니다. 스크립트 이름은 입니다 scriptTB
.
전에 뭔가를 넣어야 합니까 find
? 문제는 find
.
답변1
$PATH
프로그램 바이너리(예: find
사용하려는 프로그램)를 찾을 수 있는 위치를 시스템에 알려주는 기본 환경 변수이므로 이 변수에 대해 다른 이름을 사용해야 합니다. 귀하의 시스템을 덮어쓰고 계시고 $PATH
이제 귀하의 시스템이 프로그램을 찾을 수 없을 것 같습니다 find
. 이것을 시도해보고 작동하는지 확인하십시오.
답변2
PATH
실행 파일을 찾기 위해 쉘에서 사용하는 환경 변수와 정확히 같습니다. 설정을 해제하거나 변경하면 셸에서 find
또는 같은 명령을 찾지 못할 수 있습니다 cp
.
스크립트에서 소문자 변수 이름을 사용하는 것이 더 좋습니다. 중요한 환경 변수와 충돌할 가능성이 적습니다.
이 경우 , 예를 들어 독자에게 일부 문서를 제공하는 추가 이점이 있는 source_dir
및 를 사용할 수 있습니다.target_dir