다음 스크립트가 있다고 가정해 보겠습니다.
#!/bin/bash function cpp-lang { yum install "Development Tools" } function updatesys { yum -y update yum -y upgrade } whiptail --checklist "test" 5 40 5\ Update "Update the system" on \ C++ "Install C++" off 2>results while read choice do case $choice in Update )updatesys ;; C++)cpp-lang ;; *) ;; esac done < results
실행하면 종료됩니다. 함수에서 뭔가를 반환해야 합니까?
위 스크립트를 예로 들면,
sudo
모든 호출에서 이를 실행 해야 합니까yum install
, 아니면 충분합니까sudo ./script.sh
?
답변1
기본적으로 (두 번째 질문은 물론 sudo
가장 효율적으로 사용되어야 하는 방법에 관한 것입니다.) 판단의 문제입니다.
- 스크립트에는 3번의 호출이 있습니다
yum
. 스크립트가 처음에 테스트되면 다음과 같이 실행됩니다.root
sudo를 사용하여 자체적으로 실행하면 더 간단한 스크립트가 생성됩니다. - 반면에 어떤 사람들은 구체적으로 다음과 같이 논평할 수도 있습니다.
root
대화형 부분을 덜 안전하게 테스트합니다(패키지 이름을 직접 지정하는 것을 포함하여 스크립트를 계속 개발하고 확장하는 경우). 내 성향은 스크립트를 가질 수 있는 명령줄 옵션을 제공하는 것입니다.테스트를 거쳤습니다., 실행할 해당 명령만 표시(또는 기록)합니다.
예를 들어:
- 설치하지 않으면
whiptail
어떻게 되나요 ? - 만약
$choice
단어가 아니라면case
성명서에 인용해 놓으면 도움이 될 것입니다. whiptail
yum이 오류를 보고하면 어떻게 됩니까 (사용자에게 오류가 표시됩니까, 아니면 나중에 다른 호출이 있습니까)?