%20%EC%9D%B8%EC%88%98%EB%A5%BC%20%EB%91%90%20%EB%B2%88%EC%A7%B8(%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC)%20%EC%9D%B8%EC%88%98%EC%97%90%20%EB%B3%B5%EC%82%AC%ED%95%98%EB%8A%94%20%EA%B0%84%EB%8B%A8%ED%95%9C%20BASH%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4..png)
며칠 전부터 나는 쉘에서 스크립트를 작성하는 방법을 배우기 시작했습니다. 두 개의 매개변수(파일 이름과 특정 디렉터리)를 사용하는 스크립트를 어떻게 만들 수 있습니까? 매개변수가 잘못된 경우 오류 경고를 표시하고, 올바른 경우 해당 디렉터리에 파일을 복사하고 싶습니다. 지금까지 나는 이것을 했습니다:
#!/bin/bash
if [ -d $1 ] ; then
???
done
else
echo $1 NOT DIRECTORY
exit 1
fi
파일 확인을 위한 섹션을 별도로 만들었습니다. 이걸 어떻게 합치나요?
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Use- $0 file"
exit 1
fi
if [ -f $1 ]
then
echo "$1 There is no file with that name"
else
echo "$1 There is no file with that name"
fi
저는 bash 스크립팅을 처음 접해서 도움을 받고 싶습니다.
답변1
다음과 같은 구조를 사용할 수 있습니다.
먼저 매개변수 개수가 올바른지 확인하세요. 이 경우에는 2개입니다.
if arguments not 2 message "Not enough arguments" and exit
매개변수가 유효한 파일 및 디렉토리인지 확인하십시오.
if argument1 not a file message "Not af file" and exit if argument2 not a directory echo "Not a directory" and exit
두 매개변수가 모두 정확하면 복사가 수행됩니다.
message "Copying file" copy file to directory
스크립트가 계속 실행되지 않도록 오류 발생 시 종료하는 것을 잊지 마세요.
다음과 같은 경우 대신 라이너를 사용할 수도 있습니다.
[[ ! -f "$1" ]] && echo "Not a file" && exit