쉘스크립트(5)
-
쉘 스크립트 메뉴
다음은 모 Q&A 사이트에 답변으로 달았던 내용이다. 쉘 스크립트를 익히는 과정이기도 했고 추후 쉘스크립트 참고용도로 여기에 올린다. #!/bin/bash echo ---------------------------------------- echo 나의 명령어 메뉴에 오신 것을 환영합니다. echo ---------------------------------------- echo 1. 파일 리스트. echo 2. 파일 삭제. echo 3. 에디터 시작. echo 4. 파일 내용 보기. echo 5. 종료. echo ------------------------------------------- read -p '메뉴 번호 입력: ' NUM if [[ $NUM -eq '1' ]];then echo read -p..
2023.12.30 -
read, awk - 한 줄 읽어서 여러 변수에 할당하기
data.txt 는 식별번호, IP, 포트, 접속URL 로 구성되어 있다. 문제) test 용 IP, 포트, 접속URL 을 read 1회 실행으로 구하는 코드를 작성하라. IP, PORT, URL 변수에 할당해야 한다. data.txt 의 내용 : # 0 - dev # 1 - test # 2 - prod 0,127.0.0.1,8080,/main.do 1,test.myapp.com,7777,/index.do 2,www.myapp.com,8888,/login.do 해결과정) 1) AWK 를 써서 첫 번째 값이 '1' (test) 인 줄만 출력한다. 2) ',' 를 구분자로 해서 2, 3, 4번째 열을 출력한다. grep -v '#' data.txt --- (실행결과) 0,127.0.0.1,8080,/main..
2023.12.30 -
date, read -p, while 을 활용한 정합성 검사 loop 로직
날짜입력 후 정합성 검사 본 게시글에서는 가장 해석하기 쉬운 yyyymmdd 포맷으로 입력을 받는다. 입력된 날짜 변수값을 활용해서 전후의 날짜를 만들어내려면 입력한 날짜 데이터가 순수 숫자인지 검사해야 한다. #!/usr/bin/bash # 숫자로만 이루어져 있는지 검사하는 패턴 NUM_PAT='^[0-9]+$' while [ true ] do # 날짜를 입력으로 받아서 DATE (변수) 에 저장한다. read -p '원하는 날짜를 입력하세요: ' DATE # DATE 변수값이 숫자로만 이루어졌는지 검사(변수값 =~ 패턴) if ! [[ $DATE =~ $NUM_PAT ]]; then echo 숫자만 입력하세요. # '1223' 처럼 년도를 지정하지 않으면 통과시키지 않음. elif [ ${#DATE}..
2023.12.23 -
정규식을 활용한 Underscore / Camel Case 전환
1. Underscore to Camel Case 찾을 내용 : _(.) 바꿀 내용 : \U$1 노트패드++ 에서 통하는 방법이다. 다만, 저 방법을 적용하기 전에 우선 모두 소문자로 변환해야 한다. 그렇게 하지 않으면 요렇게 되지~~ (적용 전 : I_LOVE_SALSA, 적용 후 : ILOVESALSA) 모두 소문자로 변환하면 (전 : I_LOVE_SALSA, 후 : i_love_salsa) 하지만 거치는 과정이 다소 번거롭다. 이런 기능이 플러그인으로 존재한다면 감사히 편리하게 사용할텐데.. 해설) () 는 그룹(묶음)이다. . 은 어느 한 문자 또는 숫자를 의미한다. 따라서 _(.) 는 I_LOVE_SALSA 에서 _L, _S 가 해당된다. \U 는 뒤에 따라오는 문자를 알파벳 대문자로 변환한다...
2023.04.05 -
[리눅스/윈도] 스프링 기반 프로젝트 - 부분 백업 스크립트
큰 사이트의 프로젝트에 참여할 때 본인이 작업한 소스만 백업하고 싶을 때 쓰면 유용하다. 본 스크립트는 넥사크로 프로젝트를 기준으로 작성하였다. 윈도10에는 WSL 이 있는데 보안규정에 위배될까봐 삭제했다가 BASH 와 GNU 유틸리티가 너무 그리운 나머지 거들떠 보지도 않던 Cygwin 을 설치하게 되었다. #!/usr/bin/bash # Copyright [2021-2022] [한정훈 & papercraft.tistory.com & 종이와 쉼터] # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may..
2023.04.05