[Shell Script] 02. boilerplate 폴더/파일 생성하기 with. ChatGPT
2024. 3. 25. 08:00ㆍ프로그래밍 공부/Unix
반응형
SMALL
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 출력구문도 약간 수정해주었습니다.
이전 포스트
반응형
LIST
'프로그래밍 공부 > Unix' 카테고리의 다른 글
[Shell Script] 01. boilerplate 폴더/파일 생성하기 with. ChatGPT (0) | 2024.03.24 |
---|---|
[리눅스/유닉스] Window 10 MS Store에서 우분투(Ubuntu) 쉘(Shell)설치하기 (0) | 2019.08.26 |