반응형

출처 : https://stackoverflow.com/questions/6318809/how-do-i-grab-an-ini-value-within-a-shell-script

shell 스크립트에서 INI 파일 설정값을 얻는 방법은?

다음과 같은 parameters.ini 파일이 있습니다.

[parameters.ini]
    database_user    = user
    database_version = 20110611142248

bash 쉘 스크립트 내에서 parameters.ini 파일에 지정된 데이터베이스 버전을 읽고 사용하여 처리하려고 합니다.

#!/bin/sh
# 스크립트에서 사용하기 위해 parameters.ini 파일에서 데이터베이스 버전을 가져와야 함
PHP app/console doctrine:migrations:migrate $DATEBASE_VERSION

이를 어떻게 할 수 있을까요?


31개의 답변 중 1개

해당 라인의 값을 grep 하고난 뒤 awk를 사용하는 것은 어떨까요?

version=$(awk -F "=" '/database_version/ {print $2}' parameters.ini)
반응형
반응형

출처 : https://stackoverflow.com/questions/22683269/how-to-parse-a-config-file-conf-in-shell-script

shell 스크립트에서 설정 파일 (*.conf) 파싱하는 방법

저는 shell 스크립트 신입입니다. app.conf 파일이 다음처럼 있습니다.

[MySql]
user = root
password = root123
domain = localhost
database = db_name
port = 3306

[Logs]
level = logging.DEBUG

[Server]
port = 8080

저는 shell 스크립트에서 이 파일을 파싱하여 mysql 설정 정보를 추출하고 싶습니다. 어떻게 할 수 있을까요?

4개의 답변 중 1개의 답변만 추려냄

저는 다음처럼 하였습니다.

pw=$(awk '/^password/{print $3}' app.conf)
user=$(awk '/^user/{print $3}' app.conf)

echo $pw
root123

echo $user
root

$()는 변수 pw를 내부 명령의 출력으로 설정합니다. 안쪽의 명령은 app.conf 파일에서 password 로 시작하는 줄(line)에서 세 번째 필드를 출력합니다.

편집됨

설정 파일에서 많은 값을 파싱하려면 설정 파일 이름에 대한 변수를 만듭니다.

CONFIG=app.conf
pw=$(awk '/^password/{print $3}' "${CONFIG}")
user=$(awk '/^user/{print $3}' "${CONFIG}")

2개의 다른 포트가 있다면... 올바른 section이 나왔을 때 flag를 1로 설정하고 당신이 찾는 포트가 나왔을 때 종료(exit) 합니다.

mport=$(awk '/^\[MySQL\]/{f=1} f==1&&/^port/{print $3;exit}' "${CONFIG}")
sport=$(awk '/^\[Server\]/{f=1} f==1&&/^port/{print $3;exit}' "${CONFIG}")

역자 추가내용

저 같은 경우에는 다음처럼 파싱처리 하였습니다.

pw=$(awk -F "=" '/^\[MySQL\]/{f=1} f==1&&/^password/{print $2;exit}' "${CONFIG}")
반응형
반응형



Git 최초설정

/etc/gitconfig 파일 : 시스템의 모든 사용자와 모든 저장소에 적용되는 설정. git config --system 옵션으로 이 파일을 읽고 쓸 수 있다.

~/.gitconfig 파일 : 특정 사용자에게만 적용되는 설멍이다. git config --global 옵션으로 이 파일을 읽고 쓸 수 있다.

.git/config : 이 파일은 Git 디렉터리에 있고 현재 작업 중인 프로젝트에만 적용된다. 각 설정은 역순으로 우선시된다. 그래서 .git/config가 /etc/gitconfig보다 우선한다.

프로젝트마다 적용하고 싶으면 --global 옵션을 빼고 명령을 실행한다.

설정 확인

git config --list : 설정한 모든 것을 보여준다.


사용자 정보

Git이 커밋할 때 사용하는 사용자 정보를 설정한다.

git config --global user.name "John Doe"

git config --global user.email johndoe@example.com

편집기

Git에서 사용할 텍스트 편집기를 고른다.

git config --global core.edit emacs

Diff도구

Git에서 Merge 충돌을 해결하기 위해 사용하는 Diff도구를 설정할 수 있다.

git config --global merge.tool vimdiff

vimdiff 참조 

http://blog.daum.net/trvoid/236


출처

http://git-scm.com/book/ko/v1/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%B5%9C%EC%B4%88-%EC%84%A4%EC%A0%95


git commit 메세지 인코딩 관련 정보

git config --global i18n.commitEncoding cp949

메세지를 commit할 때 저장될 메세지의 인코딩 정보.

git config --global i18n.logoutputencoding cp949

git log, git show, git blame 명령어로 화면에 보여줄 때 출력될 문자열의 인코딩 정보. 없으면 i18n.commitEncoding를 사용한다.


출처

http://nabiro.tistory.com/153

https://www.kernel.org/pub/software/scm/git/docs/git-commit.html


git에서 파일 권한 변화를 무시하도록 설정하는 방법이 있을까요?
예시)Git에서 unstaged changes로부터 "oldmode 100755 new mode 100644"를 제거하는 방법?
git config --global core.fileMode false
현재 프로젝트에 적용하는 방법
git config core.fileMode false

출처


반응형

+ Recent posts