minimimi
[Shell Script] 02. boilerplate 폴더/파일 생성하기 with. ChatGPT 본문
반응형
Intro
지난 포스트의 개선 사항으로 echo 구문에서 변경사항이 먼저 보이고, skip한 구문은 마지막에 표시되었으면 좋겠다는 생각을 했습니다. 개선 사항도 GPT와 함께 수정해 보았습니다.
다른 스크립트의 output을 저장하기
_generate_boilerplate.sh
# Initialize arrays to store output and exit codes
outputs=()
exit_codes=()
# Call touch_file.sh script to create each file
extension_names=("tsx" "scss" "stories.tsx" "ts")
for ((i = 0; i < ${#extension_names[@]}; i++)); do
extension="${extension_names[i]}"
output=$(scripts/_touch_file.sh "$directory" "$filename" "$extension")
exit_code=$?
outputs+=("$output")
exit_codes+=("$exit_code")
done
# Call update_index.sh script to update the $driectory/indes.ts file
output=$(scripts/_update_index.sh "$directory" "$filename")
exit_code=$?
outputs+=("$output")
exit_codes+=("$exit_code")
# Output success codes
for ((i = 0; i < ${#outputs[@]}; i++)); do
if [ "${exit_codes[i]}" -eq 0 ]; then
echo -e "${outputs[i]}"
fi
done
# Output failure codes
for ((i = 0; i < ${#outputs[@]}; i++)); do
if [ "${exit_codes[i]}" -ne 0 ]; then
echo -e "${outputs[i]}"
fi
done
Line by Line
# Initialize arrays to store output and exit codes
outputs=()
exit_codes=()
# Call touch_file.sh script to create each file
extension_names=("tsx" "scss" "stories.tsx" "ts")
for ((i = 0; i < ${#extension_names[@]}; i++)); do
extension="${extension_names[i]}"
output=$(scripts/_touch_file.sh "$directory" "$filename" "$extension")
exit_code=$?
outputs+=("$output")
exit_codes+=("$exit_code")
done
output과 exit_code를 저장할 배열을 각각 초기화합니다.
for 문을 순회하며 _touch_file.sh스크립트를 실행하고 해당 출력을 캡처합니다.
$?는 가장 최근에 실행된 명령의 종료 코드를 캡처합니다.
그리고 각각을 배열에 추가해줍니다.
# Output success codes
for ((i = 0; i < ${#outputs[@]}; i++)); do
if [ "${exit_codes[i]}" -eq 0 ]; then
echo -e "${outputs[i]}"
fi
done
# Output failure codes
for ((i = 0; i < ${#outputs[@]}; i++)); do
if [ "${exit_codes[i]}" -ne 0 ]; then
echo -e "${outputs[i]}"
fi
done
성공 코드(exit 0) 일 경우 먼저 echo해주며 실패 코드일 경우 output을 출력합니다.
개선 후
CheckBox를 생성한 후 CheckBox/index.ts를 임의로 삭제한 뒤 다시 한번 스크립트를 실행하였습니다.
변경 사항이 먼저 출력되고 Skip에 관한 콘솔은 다음에 모여서 출력됩니다. Skip 출력구문도 약간 수정해주었습니다.
이전 포스트
반응형
'프로그래밍 공부 > Unix' 카테고리의 다른 글
[Shell Script] 01. boilerplate 폴더/파일 생성하기 with. ChatGPT (0) | 2024.03.24 |
---|---|
[리눅스/유닉스] Window 10 MS Store에서 우분투(Ubuntu) 쉘(Shell)설치하기 (0) | 2019.08.26 |