며칠 전부터 나는 쉘에서 스크립트를 작성하는 방법을 배우기 시작했습니다. 두 개의 매개변수(파일 이름과 특정 디렉터리)를 사용하는 스크립트를 어떻게 만들 수 있습니까? 매개변수가 잘못된 경우 오류 경고를 표시하고, 올바른 경우 해당 디렉터리에 파일을 복사하고 싶습니다. 지금까지 나는 이것을 했습니다:
#!/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