bash(14)
-
쉘 스크립트 메뉴
다음은 모 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 전환 : INSERT 쿼리 생성
필요해서 퇴근 후에 만들었는데 현실에서 막상 사용하려고 하니 인터넷이 안되는 환경이었다. #!/bin/bash # 활용법 : 1번 인자 : 테이블명 2번 인자 : ("_"로 구분된) 컬럼명이 들어 있는 파일 function usage { prog_nm=$(basename $0) echo 'usage :' echo -e '\t'${prog_nm} 'table-name' 'camel-case-file' echo or # 테이블명을 지정하지 않으면 컬럼명만 처리함 echo -e '\t'${prog_nm} 'camel-case-file' } [[ $# -lt 1 ]] && usage && exit 0 function genSQL { [[ ! -f $FILE ]] && usage && exit 1 if [ ! -..
2023.08.11 -
[리눅스/윈도] WSL 에서 윈도용 프로그램 실행하기
작성일 : 2021. 9. 14. WSL, 즉 Windows Subsystem for Linux 의 BASH 에서 윈도(Microsoft Windows OS)용 응용프로그램을 실행하는 방법이다. 윈도에서야 탐색기에서 실행파일 또는 바로가기(구. 단축아이콘)을 더블클릭해서 실행하면 된다. 하지만, BASH 에서는 어떻게 하느냐, 알고 나면 간단하다. WSL 에서 C: 는 /mnt/c 에 마운트된다. 가령 C:\Program Files\Notepad++\notepad++.exe 를 실행하려고 하면 /mnt/c/Program\ Files/Notepad++/notepad++.exe 를 실행하면 된다. 이것을 간소하게나마 쉘 스크립트로 만든다면 단순히 프로그램만 실행할 게 아니라, 다음과 같이 $1 를 붙여서 (..
2023.05.06 -
[리눅스/윈도] git branch, checkout 응용 스크립트
작성일 : 2021. 9. 15. 사용법) 상위 디렉토리에서 전체 프로젝트에 대해 활성화된 로컬 브랜치를 확인하려고 할 때 [/mnt/d/backend]$ git_branch.sh repoPrj0 -> * dev repoPrj1 -> * newDev repoPrj2 -> * dev 프로젝트 디렉토리에서 로컬 브랜치 목록을 확인할 때 [/mnt/d/backend/repoPrj1]$ git_branch.sh dev * newDev oldWork 스크립트 소스) #!/bin/bash # Copyright [2021-2022] [한정훈 & papercraft.tistory.com & 종이와 쉼터] # # Licensed under the Apache License, Version 2.0 (the "License..
2023.05.06