다음은 Linux에서 쉘 스크립트를 작성할 때 염두에 두어야 할 몇 가지 편리한 팁입니다.
Shell 스크립트는 Linux(및 MacOS, 이제 Windows, Linux용 Windows 하위 시스템 포함)에서 워크플로를 자동화하는 다양한 방법입니다. 셸 스크립팅 구문 및 동작에는 고유한 특성이 있으며 스크립트를 단순화하는 데 사용할 수 있는 유용한 단축키도 있습니다.
Bash 스크립팅 팁
이 팁은 인터넷에서 수집한 것이며 제가 직접 입력한 것입니다.
Bash 스크립트는 오류가 있어도 계속 실행됩니다!
이는 특히 사용자 입력을 수락하고 파일 작업을 할 때 문제를 일으킬 수 있습니다. 이 동작을 방지하려면 set 명령을 추가하십시오.
set -eu
...스크립트의 시작 부분으로. – 스크립트에 오류 발생 시 종료하도록 지시하고 -u 변수가 설정되지 않은 경우 스크립트를 종료하도록 지시합니다.
항상 셔뱅을 포함
항상 스크립트의 첫 번째 줄에 shebang을 포함합니다.
#!/bin/sh
이는 스크립트를 해석하는 데 사용해야 하는 셸을 시스템에 알려주며 호환성에 중요합니다. Bash용으로 작성된 스크립트는 Zsh 내에서 실행될 때 다르게 작동할 수 있지만 shebang을 포함하면 올바른 쉘로 해석되도록 할 수 있습니다.
사용하지 않음 sudo 스크립트에서
스크립트를 실행할 때 모호성이 발생하고 파이프 및 리디렉션을 사용할 때 문제가 발생할 수 있습니다. 보안 문제이기도 합니다. 스크립트에 루트 권한이 필요한 경우 전체 스크립트를 루트로 실행하거나 sudo를 사용하여 실행해야 합니다. .
스크립트가 스크립트에서 root/sudo로 실행되고 있는지 확인
이 명령을 스크립트 시작 부분에 추가하여 루트/sudo 권한으로 실행 중인지 확인합니다. 이 명령은 루트 권한이 필요한 명령을 시도하고 실행할 때가 아니라 어떤 작업을 시도하기 전에 스크립트를 실패하게 만듭니다.
# Check if running as root if ((EUID!=0 )); then printf "Please run as root" exit 1 fi
-y를 사용하여 적절한 프롬프트 건너뛰기
-y 추가 프롬프트를 건너뛰고 사용자 입력 없이 스크립트를 실행할 수 있도록 apt 명령의 끝에:
sudo apt install nano -y
또는
sudo apt upgrade -y
경로를 인용하세요!!!
Bash 스크립트를 작성할 때 경로를 인용하십시오. 이유를 설명하는 전체 기사가 있다는 것은 충분히 중요합니다.
현재 작업 디렉토리 수정
CURR_DIR="$(dirname $0);" printf -- 'moving application to /opt/app.jar'; mv "${CURR_DIR}/application.jar" /opt/app.jar;
사용자 입력의 변수에 대한 기본값 설정
사용자 입력을 요청할 때 다음을 사용하여 기본값을 설정할 수 있습니다.
echo "Enter a value" read val val=${val:-"Default Value"}
변수가 val인 경우 읽은 후 비어 있으면 기본값이 설정됩니다.
댓글을 많이 남겨주세요
그것은 당신의 미래를 위한 것입니다 - 당신이 무엇을 하고 있고 왜 그것을 하고 있는지 설명하십시오. 코드의 의도를 명확히 하는 것은 좋은 온전성 검사이며 디버깅에 도움이 되며, 광범위한 주석을 추가하면 나중에 코드로 쉽게 돌아갈 수 있습니다.
인쇄, 인쇄, 인쇄
최대한 많은 정보를 콘솔에 인쇄하여 스크립트가 충돌하는 경우 어디인지 알 수 있습니다. 그것은 추락했다. 기본적으로 Bash 스크립트는 장황할 필요가 없습니다.
종료 상태 내보내기
스크립트에 오류가 발생하면 스크립트를 호출할 수 있는 다른 스크립트가 적절하게 반응할 수 있도록 적절한 종료 코드로 스크립트가 종료되는지 확인하세요.