두 개의 인수를 받아들이고 확인하고 첫 번째(파일) 인수를 두 번째(디렉터리) 인수에 복사하는 간단한 BASH 쉘 스크립트를 만듭니다.

두 개의 인수를 받아들이고 확인하고 첫 번째(파일) 인수를 두 번째(디렉터리) 인수에 복사하는 간단한 BASH 쉘 스크립트를 만듭니다.

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

#!/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

관련 정보