2022. 8. 11. 17:12ㆍ라즈베리파이
유튜브에 보면 라즈베리파이를 진짜 가지고 노는 특이하신 분들이 많네요
그렇게 까지 하고 싶진 않고 그냥 내 작품만 잘 돌아갔으면 좋겠습니다ㅠㅠ
예전에 졸업 전시에 가면 라즈베리파이로 만들었다는 제품을 보면 이게 컴퓨터라는 생각이 전혀 들지 않았습니다.
라즈베리파이가 터치스크린인가..? 하는 생각이 들곤 했는데
아마 그런 것들은 쉘 스크립트(shell script)로 흐름을 잘 짜놓았을 겁니다.
먼저 쉘 스크립트가 뭔지 설명을 드리겠습니다.
Shell script for LINUX
cd /home/pi/Desktop/YOURPROJECT
pwd = $(PWD);
source "$pwd" + /env/bin/activate
echo "venv is activated"
마치 윈도우의 배치파일처럼 여러 명령어를 쭉 기입해놓은 파일을 리눅스에선 쉘 스크립트라고 합니다.
확장자는 sh에요.
여타 파일과 같이 라즈베리파이 환경에선
sudo vim script.sh
이렇게 연 다음 실행하고 싶은 명령어를 기입해주세요.
스크립트 언어이기 때문에 당연히 한 줄 씩 실행됩니다. 모든 작업은 동기 프로그램으로 실행되기 때문에 만약에 어떤 파일 실행에 오래걸린다해도 그냥 그대로 기다립니다. 이런 식의 활용도 가능합니다.
echo "실행할 모드를 골라주세요."
echo "(1) 모드 1 , (2) 모드 2"
// 패키지 설치할 때처럼 1,2 혹은 y,n 등 사용자가 직접 입력하게 하고 싶은 경우
while true; do
read -p "숫자로만 입력해주세요" answer
case $answer in
[1]* ) NEXT_JOB1; break;;
[2]* ) NEXT_JOB2; break;;
* ) echo "숫자로만 입력해주세요";;
esac
done
// 사용자가 객관식 명령 중 선택하고 싶게 하는 경우
echo "어떤 모드를 실행할까요?"
select mode in "모드1" "취소"; do
case $mode in
모드1 ) NEXT_JOB; break;;
모드2 ) exit;;
esac
done
이런 식으로 while 문이나 select라는 구문을 통해 사용자의 입력을 받아서 분기를 분리하는 것도 가능합니다.
당연히 if 문도 있어요. while 문 안에서 모든 걸 처리하지 말고 바깥의 변수를 변환시켜줘봅시다.
변수의 선언과 if 문은 이렇게 사용할 수 있습니다.
var=false
if [[ "$var" = "false" ]];
then NEXT_JOB; exit;
fi
if 구문 안에서 실행한 다음엔 fi로 꼭 닫아줍시다.
생각하고 있는 대로 구문을 짜보셨나요?
짠 다음에 같이 실행을 해볼까요?
sh script.sh
가볍게 실습을 한 번 해봤습니다.
다음엔 제가 설계한 순서의 스크립트를 한번 보여드리겠습니다!
그럼 이만!
'라즈베리파이' 카테고리의 다른 글
라즈베리파이 64bit 환경에서 libcamera 사용 A to Z (1) | 2022.09.30 |
---|---|
라즈베리 파이에서 google cloud api 사용기 - 1 (0) | 2022.08.04 |