스크립트 관련 게시글 - JooTC https://jootc.com/p/tag/스크립트 Windows, macOS, Linux, IT, 프로그래밍 등 여러가지 테크 분야에 대한 정보와 습득 지식을 포스팅하는 블로그입니다. Fri, 05 Apr 2024 08:03:12 +0000 ko-KR hourly 1 https://jootc.com/wp-content/uploads/2020/06/cropped-jootc-icon-logo-2020-04-1-32x32.png 스크립트 관련 게시글 - JooTC https://jootc.com/p/tag/스크립트 32 32 167838187 리눅스 bash 스크립트 – Systemd로 서비스 구동 여부 확인 https://jootc.com/p/201812152359 https://jootc.com/p/201812152359#comments Sat, 15 Dec 2018 08:33:42 +0000 https://blog.inidog.com/?p=2359 리눅스 systemd와 systemctl 명령어 systemd는 기존의 init 시스템을 대체할 새로운 프로세스 관리 시스템이며 최신 리눅스 시스템에는 대부분 systemd를 채택하고 있기 때문에 어떤 배포판이던 상관없이 systemd 관련 동작이나 명령의 파악이 중요해져가고 있습니다. systemd는 서비스를 시작, 중지하는 등의 대부분의 서비스를 관리할 수 있도록 하는 systemctl 명령어가 있습니다.   예를 들어 Nginx 서버의 설정을 변경해서 서비스를 다시 시작해야 하는 […]

The post 리눅스 bash 스크립트 – Systemd로 서비스 구동 여부 확인 appeared first on JooTC.

]]>
리눅스 systemd와 systemctl 명령어

systemd는 기존의 init 시스템을 대체할 새로운 프로세스 관리 시스템이며 최신 리눅스 시스템에는 대부분 systemd를 채택하고 있기 때문에 어떤 배포판이던 상관없이 systemd 관련 동작이나 명령의 파악이 중요해져가고 있습니다.

systemd는 서비스를 시작, 중지하는 등의 대부분의 서비스를 관리할 수 있도록 하는 systemctl 명령어가 있습니다.

 

예를 들어 Nginx 서버의 설정을 변경해서 서비스를 다시 시작해야 하는 경우 다음 명령어와 같이 사용할 수 있습니다.

[root@localhost ~]# systemctl restart nginx
또는
[root@localhost ~]# systemctl reload nginx

이는 기존의 대부분의 배포판에서 존재했던 service 명령어와 비슷하지만, systemctl은 서비스명과 동작 값을 뒤바꾸어 작성해야 합니다. nginx restart가 아닌 restart nginx가 올바른 명령이기 때문에 기존 리눅스 사용자에게는 살짝 혼동될 수도 있을 것입니다.

 

 

systemctl 명령어로 서비스 구동 여부 확인하기


아무튼 systemctl의 명령어 중에서는 서비스의 구동 상태를 확인할 수 있는 명령어 또한 존재합니다.

systemctl의 명령어를 살펴보겠습니다. 여기에 자세히 살펴보면 is-active 라는 명령이 있을 것입니다.

[root@localhost ~]# systemctl 
add-requires           force-reload           list-sockets           set-environment
add-wants              get-default            list-timers            set-property
cancel                 halt                   list-unit-files        show
cat                    help                   list-units             show-environment
condreload             hibernate              mask                   snapshot
condrestart            hybrid-sleep           poweroff               start
condstop               is-active              preset                 status
daemon-reexec          is-enabled             reboot                 stop
daemon-reload          is-failed              reenable               suspend
default                isolate                reload                 switch-root
delete                 is-system-running      reload-or-restart      try-restart
disable                kexec                  reload-or-try-restart  unmask
edit                   kill                   rescue                 unset-environment
emergency              link                   reset-failed           
enable                 list-dependencies      restart                
exit                   list-jobs              set-default

 

다음 명령어를 사용하면 systemctl로 서비스 구동 여부를 확인할 수 있습니다.

systemctl is-active [서비스명]

만약 nginx 서비스가 구동 중인지 확인하려면 다음과 같이 입력합니다.

systemctl is-active nginx

결과 값은 다음과 같이 나타날 것입니다. 서비스가 문제 없이 구동 중임을 알 수 있을 것입니다.

active

 

상태는 대략 3가지로 보여질 것입니다. 각각의 의미는 다음과 같습니다.

  • active : 서비스가 현재 구동 중 상태임
  • inactive : 서비스가 현재 정지 상태임
  • unknown : 서비스를 찾을 수 없음 (설치되지 않았거나 잘못된 이름)

 

리눅스 bash 스크립트 – 서비스 구동 여부 확인


이제 이를 활용하여 간단히 서비스를 체크하고 정지 상태의 서비스를 자동으로 시작하는 스크립트를 만들어보겠습니다.

bash 스크립트(셸 스크립트) 파일을 만들기 위해 원하는 디렉토리에서 다음 명령어를 실행합니다. 여기서는 서비스 재시작을 위해 어차피 root 권한이 필요하므로 root 사용자로 작업을 해보도록 하겠습니다.

[root@localhost]# touch serviceCheck.sh

 

다음으로 해당 파일의 권한을 소유자만 읽고 쓰고 실행할 수 있는 상태로 만듭니다.

[root@localhost]# chmod 700 serviceCheck.sh

 

이제 vim이나 nano 등의 편집기로 해당 파일을 열어 편집 상태로 만듭니다.

[root@localhost]# vim serviceCheck.sh

 

파일 안에 다음 내용을 붙여넣습니다.

#!/bin/bash
servicename="nginx"
echo "현재 $servicename 서비스 상태 : $(systemctl is-active $servicename)"
if [ $(systemctl is-active $servicename) == "inactive" ]; then
        echo "$servicename 서비스를 재시작하는 중..."
        service $servicename restart
fi

필요에 따라 servicename 의 값을 변경하면 해당 서비스를 체크하게 됩니다.

위 내용을 여러번 복사하거나 반복문으로 처리하게 되면 다양한 서비스를 한꺼번에 확인할 수도 있습니다.

이제 serverCheck 스크립트를 실행해보겠습니다. 문제 없이 실행되고 있습니다.

[user@localhost ~]$ ./serverCheck.sh 
현재 nginx 서비스 상태 : inactive
nginx 서비스를 재시작하는 중...
Redirecting to /bin/systemctl restart nginx.service

 

The post 리눅스 bash 스크립트 – Systemd로 서비스 구동 여부 확인 appeared first on JooTC.

]]>
https://jootc.com/p/201812152359/feed 2 2359
Bash Script – if문 사용 시 line n: [: missing `]’ 에러 해결하기 https://jootc.com/p/201812082325 https://jootc.com/p/201812082325#comments Sat, 08 Dec 2018 10:34:08 +0000 https://blog.inidog.com/?p=2325 Bash script [: missing `]’ 에러 해결하기 Bash Script로 if 문을 사용하려 할 때 다음과 같은 에러 메세지가 발생할 수 있습니다. ./myscript.sh: line 3: [: missing `]' 또는 다음과 같이 에러가 발생하기도 합니다. ./myscript.sh: line 3: [1: command not found   아무래도 문법의 문제로 보입니다. 예제 스크립트 내용을 살펴보면 if 문에는 다음과 같이 작성되어 있습니다. […]

The post Bash Script – if문 사용 시 line n: [: missing `]’ 에러 해결하기 appeared first on JooTC.

]]>
Bash script [: missing `]’ 에러 해결하기

Bash Script로 if 문을 사용하려 할 때 다음과 같은 에러 메세지가 발생할 수 있습니다.

./myscript.sh: line 3: [: missing `]'

또는 다음과 같이 에러가 발생하기도 합니다.

./myscript.sh: line 3: [1: command not found

 

아무래도 문법의 문제로 보입니다. 예제 스크립트 내용을 살펴보면 if 문에는 다음과 같이 작성되어 있습니다.

#!/bin/bash
tempvalue=1
if [$tempvalue -eq 1]
then
    echo "tempvalue is 1"
fi

 

이를 해결하는 방법은 간단합니다. 여기서 문제는 if 문의 띄어쓰기에 있었습니다.

대괄호 [] 사이에는 공백이 있어야 합니다. 위 스크립트에는 공백이 없어 에러가 발생하게 됩니다.

이를 해결한 스크립트는 다음과 같습니다.

#!/bin/bash
tempvalue=1
if [ $tempvalue -eq 1 ]
then
    echo "tempvalue is 1"
fi

 

이제 스크립트를 실행하여 문제가 발생하지 않는지 확인합니다.

test@ubuntu-pc:~/scripts$ ./myscript.sh
tempvalue is 1

 

 

The post Bash Script – if문 사용 시 line n: [: missing `]’ 에러 해결하기 appeared first on JooTC.

]]>
https://jootc.com/p/201812082325/feed 1 2325
[VBScript] 파일 또는 폴더를 삭제하는 스크립트 https://jootc.com/p/201810031949 https://jootc.com/p/201810031949#respond Wed, 03 Oct 2018 06:04:16 +0000 https://blog.inidog.com/?p=1949 VBscript 파일 또는 폴더 삭제 VBScript에서 파일이나 폴더를 삭제하는 방법   스크립트 예시 strFolder = "[Folder Path]" SET objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(strFolder) Then objFSO.DeleteFolder(strFolder) End If strFolder 경로가 존재할 경우에 해당 폴더를 삭제하는 스크립트입니다.   폴더 삭제 SET objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFolder("C:\Users\mypc\Desktop\directory") 선언된 오브젝트에서 DeleteFolder() 을 호출합니다. 이 때 DeleteFolder 인자 값에는 폴더의 경로가 […]

The post [VBScript] 파일 또는 폴더를 삭제하는 스크립트 appeared first on JooTC.

]]>
VBscript 파일 또는 폴더 삭제

VBScript에서 파일이나 폴더를 삭제하는 방법

 

스크립트 예시

strFolder = "[Folder Path]"

SET objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(strFolder) Then
    objFSO.DeleteFolder(strFolder)
End If

strFolder 경로가 존재할 경우에 해당 폴더를 삭제하는 스크립트입니다.

 

폴더 삭제

SET objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFolder("C:\Users\mypc\Desktop\directory")

선언된 오브젝트에서 DeleteFolder() 을 호출합니다. 이 때 DeleteFolder 인자 값에는 폴더의 경로가 들어가야 합니다.

만약 해당 경로의 폴더가 존재하지 않는다면 스크립트 에러가 발생하게 됩니다.

 

파일 삭제

SET objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile("C:\Users\mypc\Desktop\directory\myfile.txt")

선언된 오브젝트에서 DeleteFile() 을 호출합니다. 이 때 DeleteFile 인자 값에는 파일의 경로가 들어가야 합니다.

만약 해당 경로의 파일이 존재하지 않는다면 스크립트 에러가 발생하게 됩니다.

The post [VBScript] 파일 또는 폴더를 삭제하는 스크립트 appeared first on JooTC.

]]>
https://jootc.com/p/201810031949/feed 0 1949
배치 파일(Batch File) – 관리자 권한으로 실행 요청하기 https://jootc.com/p/201809011675 https://jootc.com/p/201809011675#comments Sat, 01 Sep 2018 10:39:20 +0000 https://blog.inidog.com/?p=1675 배치 파일(Batch File)을 사용하여 커맨드라인 명령어를 자동화하려 할 때, 관리자 권한이 필요할 때가 있습니다. 그러나 배치파일 내에 특별한 명령이 들어있지 않다면 관리자 권한이 요구되는 작업은 무시되거나 오류를 발생시킬 수 있습니다. 예를 들어 민감한 파일의 이름을 변경하거나 파일을 편집하고 생성하는 작업들은 일반 사용자가 쉽게 접근 및 실행할 수 없을 수도 있습니다.   배치 파일 관리자 권한 […]

The post 배치 파일(Batch File) – 관리자 권한으로 실행 요청하기 appeared first on JooTC.

]]>
배치 파일(Batch File)을 사용하여 커맨드라인 명령어를 자동화하려 할 때, 관리자 권한이 필요할 때가 있습니다.

그러나 배치파일 내에 특별한 명령이 들어있지 않다면 관리자 권한이 요구되는 작업은 무시되거나 오류를 발생시킬 수 있습니다. 예를 들어 민감한 파일의 이름을 변경하거나 파일을 편집하고 생성하는 작업들은 일반 사용자가 쉽게 접근 및 실행할 수 없을 수도 있습니다.

 

배치 파일 관리자 권한 실행하기


따라서 파일 실행 전에 관리자 권한을 묻는 창을 띄워 파일 실행을 방해하지 않도록 내용을 추가해보겠습니다. 일반적으로 Windows 7 이상에서 관리자 권한을 얻기 위해서는 사용자 계정 컨트롤 (User Access Control, UAC)이라는 계정 관리 서비스에 의해서 관리자 권한을 사용하기 위한 승인을 받아야 합니다. 보통 프로그램을 설치하거나 실행할 때 쉽게 보게되는 아래와 같이 어두운 배경의 파란 박스가 사용자 계정 컨트롤 창입니다.

cmd_uac_prompt

 

관리자 권한을 취득하는 배치 파일


아래 배치 파일의 내용은 관리자 권한을 취득하는 모든 과정이 포함되어 있습니다.

UACAccess 라벨에서 UAC 창이 띄워지며, Done 라벨에서는 권한 취득 완료 시에 진행되는 내용입니다. 만약 사용자 계정 컨트롤 창이 떴음에도 사용자가 아니요(거부)를 클릭하면 커맨드 창은 종료됩니다.

이 과정은 CMD 명령어로 처리하기 어렵기 때문에 VB Script를 사용하여 진행해야 합니다. 따라서 배치파일 명령어에는 uac_get_admin.vbs라는 파일을 별도로 만들어서 실행하는 내용이 포함되어 있습니다.

@echo off
set uaccheck=0
:CheckUAC
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    goto UACAccess
) else ( goto Done )

:UACAccess
echo 관리자 권한을 취득해야 합니다.
pause
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\uac_get_admin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\uac_get_admin.vbs"
"%temp%\uac_get_admin.vbs"
del "%temp%\uac_get_admin.vbs"
exit /b

:Done
echo 관리자 권한을 취득하였습니다.
pause
exit

이제 batch 파일을 관리자 권한으로 직접 실행할 필요가 없습니다. 실행하면 권한을 자동으로 확인한 후 관리자 권한이 없다면 요청할 것입니다.

The post 배치 파일(Batch File) – 관리자 권한으로 실행 요청하기 appeared first on JooTC.

]]>
https://jootc.com/p/201809011675/feed 2 1675
MySQL 데이터베이스 자동 백업 스크립트 https://jootc.com/p/201808291664 https://jootc.com/p/201808291664#respond Wed, 29 Aug 2018 11:03:10 +0000 https://blog.inidog.com/?p=1664 MySQL 데이터베이스 자동 백업 스크립트 일정 시간 마다 MySQL 데이터베이스를 자동으로 백업해주는 Bash Shell 스크립트입니다. 주의: 이 스크립트는 데이터베이스 용량이 작은 경우에 권장되며 가급적이면 용량이 큰 데이터베이스를 이 스크립트를 사용하여 백업하지 않는 것을 권장합니다. 스크립트 파일 (mysqlbackup.sh) 사용 방법 상단의 파일을 복사하여 mysqlbackup.sh으로 저장합니다. (이름은 자유롭게 지정해주셔도 됩니다.) 여기서 해당되는 변수에 지정된 값을 기입해야 합니다. […]

The post MySQL 데이터베이스 자동 백업 스크립트 appeared first on JooTC.

]]>
MySQL 데이터베이스 자동 백업 스크립트

일정 시간 마다 MySQL 데이터베이스자동으로 백업해주는 Bash Shell 스크립트입니다.

주의: 이 스크립트는 데이터베이스 용량이 작은 경우에 권장되며 가급적이면 용량이 큰 데이터베이스를 이 스크립트를 사용하여 백업하지 않는 것을 권장합니다.

스크립트 파일 (mysqlbackup.sh)

#!/bin/bash
# Time format
currentDate=$(date "+%Y_%m_%d_%H_%M_%S")

# Database user authentication
dbUser="[Database User]"
dbPass="[Database Password]"

# Save file name or path
siteName="[Backup File Name]"
savePath="[Backup FIle Path]"

# ======================================================
# Create SQL Backup File
# ======================================================
mysqldump -u$dbUser -p$dbPass -A > $savePath$siteName'_backup_'$currentDate.sql
chmod 400 $savePath$siteName'_backup_'$currentDate.sql
echo "Success : Created backup file. ($currentDate)"

사용 방법

상단의 파일을 복사하여 mysqlbackup.sh으로 저장합니다. (이름은 자유롭게 지정해주셔도 됩니다.)

여기서 해당되는 변수에 지정된 값을 기입해야 합니다.

  • dbUser (데이터베이스 사용자 명)
  • dbPass (사용자 패스워드)
  • siteName (백업파일명),
  • savePath (저장 경로 : /home/user/ 처럼 끝에 /를 붙입니다.)

해당 파일을 실행할 수 있도록 권한을 700로 설정합니다. 가능하면 mysqldump 명령어를 실행할 수 있는 사용자로 권한을 변경해주는 것을 권장합니다.

root 권한으로 실행하려 한다면 아래와 같이 진행해주시면 됩니다.

# chmod 700 mysqlbackup.sh
# chown root.root mysqlbackup.sh

다음으로 예약 작업을 지정합니다. crond 로 예약 작업을 추가해보겠습니다. 아래 명령어로 cron 작업 편집기를 열어주세요.

# crontab -e

cron 작업 편집기가 열리면 다음 내용을 추가합니다.

0 1 * * * /[실행파일 경로]/mysqlbackup.sh

위 예시는 매일 오전 1시에 자동으로 해당 스크립트를 실행해주는 내용을 담고 있습니다.

이제 crond 서비스를 재시작해야 합니다.

# service crond restart

이제 해당 스크립트가 일정 시간 마다 실행 될 것입니다.

만약 해당 백업 파일로 데이터베이스 백업이 필요한 경우, 아래 포스트를 참고하여 데이터베이스 백업을 진행해보세요.

The post MySQL 데이터베이스 자동 백업 스크립트 appeared first on JooTC.

]]>
https://jootc.com/p/201808291664/feed 0 1664
[Google Apps Script] 스프레드시트 setValue() 동작하지 않을 때 https://jootc.com/p/20180308690 https://jootc.com/p/20180308690#respond Thu, 08 Mar 2018 13:20:44 +0000 https://joojy.net/?p=690 구글 스프레드시트 스크립트 setValue() 동작 문제 구글 스프레드시트 스크립트를 사용하다가 올바르게 setValue()를 사용하여 특정 셸에 값을 붙여넣으려는데 평상시와 달리 값이 들어가지 않을 때가 있습니다. function myFunction() {     var Sheet =     SpreadsheetApp.getActiveSpreadsheet().getSheetByName("mySheet");     // mySheet 시트의 A1:A 범위 중복 제거 값을 B1부터 추출합니다.     Sheet.getRange('B1').setValue('=UNIQUE(A1:A)'); } ▲ B1 셸부터 중복 […]

The post [Google Apps Script] 스프레드시트 setValue() 동작하지 않을 때 appeared first on JooTC.

]]>
구글 스프레드시트 스크립트 setValue() 동작 문제

구글 스프레드시트 스크립트를 사용하다가 올바르게 setValue()를 사용하여 특정 셸에 값을 붙여넣으려는데 평상시와 달리 값이 들어가지 않을 때가 있습니다.

function myFunction() {
    var Sheet =
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("mySheet");
    // mySheet 시트의 A1:A 범위 중복 제거 값을 B1부터 추출합니다.
    Sheet.getRange('B1').setValue('=UNIQUE(A1:A)');
}

spreadsheet value not set
▲ B1 셸부터 중복 제거 값이 들어와야 하는데 아무런 데이터도 없다.

그러나 정작 B열에는 아무런 데이터도 들어오지 않았습니다. 원래대로라면 UNIQUE(특정 범위의 중복 데이터를 제거한 값을 지정 열에 삽입)함수가 실행 되어야 하지만 오류조차 발생하지 않았습니다.

이러한 문제는 대체로 구글 스크립트 실행 시 다음 명령을 처리하는 데에 있어 타이밍 문제가 발생하여 값을 붙여넣어야 할 시점을 제대로 캐치하지 않아 발생하는 현상입니다. 정확하게는 스크립트 성능 향상을 위해 구글 스크립트가 getRange()를 우선적으로는 처리하지만 setValue() 함수의 작업은 일시적으로 보류할 수 있다는 의미이기 때문에 다량의 스프레드시트 데이터 변경이 있을 경우 데이터 삽입은 지연이 있는 것입니다.

일반 값이라면 대부분 문제가 없지만 수식을 사용하는 경우 해당 증상이 자주 나타날 것입니다.

해결 방법

수식 데이터를 삽입할 경우 setFomula() 함수로 대체하여 사용해봅니다.

  • 기존 – Sheet.getRange('B1').setValue('=UNIQUE(A1:A)');
  • 대체 – Sheet.getRange('B1').setFomula('=UNIQUE(A1:A)');

만약 위 방법으로도 해결되지 않는다면 setValue() 또는 setFomula() 함수를 실행한 명령문 아랫줄에 다음 내용을 추가합니다 : SpreadsheetApp.flush();

SpreadsheetApp.flush() 함수는 이러한 데이터 삽입 지연을 하지 않고 값 입력이 처리되도록 합니다. 따라서 스크립트 실행 도중에 실시간으로 데이터가 처리되는 것을 확인할 수 있으며 스크립트 동작에 발생하는 오류를 일부 막을 수 있게 됩니다.

The post [Google Apps Script] 스프레드시트 setValue() 동작하지 않을 때 appeared first on JooTC.

]]>
https://jootc.com/p/20180308690/feed 0 690
Colorscheme 적용을 위한 리눅스 bash 스크립트 https://jootc.com/p/20170306211 https://jootc.com/p/20170306211#respond Mon, 06 Mar 2017 04:19:52 +0000 http://blog.joojy.net/?p=211 Colorscheme 적용 확인용 스크립트 Colorscheme 를 편하게 지정하기 위하여 샘플 텍스트를 출력해주는 스크립트입니다. 원하는 디렉토리에 해당 스크립트 내용이 담긴 스크립트 파일(.sh)을 만든 후, 권한을 700으로 설정한 뒤 ./[filename].sh 로 실행해주시면 됩니다. #/bin/bash #====================================== # Color Scheme Sample Text Test #====================================== function Main() { # Custom Settings TESTTXT="ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-=_\'\".:;\\+|한글문자테스트1234567890" NORMALTEXT="| $TESTTXT " cols=`echo -e "\ncols" |tput -S` if […]

The post Colorscheme 적용을 위한 리눅스 bash 스크립트 appeared first on JooTC.

]]>
Colorscheme 적용 확인용 스크립트

Colorscheme 를 편하게 지정하기 위하여 샘플 텍스트를 출력해주는 스크립트입니다.

원하는 디렉토리에 해당 스크립트 내용이 담긴 스크립트 파일(.sh)을 만든 후, 권한을 700으로 설정한 뒤 ./[filename].sh 로 실행해주시면 됩니다.

#/bin/bash
#======================================
# Color Scheme Sample Text Test
#======================================
function Main() {
# Custom Settings
TESTTXT="ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-=_\'\".:;\\+|한글문자테스트1234567890"
NORMALTEXT="| $TESTTXT "
cols=`echo -e "\ncols" |tput -S`
if [ $cols -lt 90 ]
then
echo "sh: $cols column window is too narrow"
return 0
fi
clear
echo -e "────────────────────────── Color Scheme Test ──────────────────────────"
echo -e $NORMALTEXT
echo -e "\e[1m$NORMALTEXT \e[0m"
for type in 3 4 9 10
do
for cnt in {0..6}
do
echo -e "\e[${type}${cnt}m| $TESTTXT \e[0m"
done
done
echo -e "────────────────────────────────────────────────────────────────────────\n\n\n"
echo -e "...Done\n\n\e[1m(Press 'Enter' key to exit)\e[m"
read EXITCODE
clear
}
Main

 

The post Colorscheme 적용을 위한 리눅스 bash 스크립트 appeared first on JooTC.

]]>
https://jootc.com/p/20170306211/feed 0 211