반응형

OS: Ubuntu 16.04 (amd64)

Shell: bash


Bash 또는 sh 기반으로 쉘 스크립트를 만들다 보면 하나의 스크립트에서 다른 쉘 스크립트를 실행할 때가 있다. 작은 숫자나 짧은 문자열과 같이 간단한 변수는 그냥 argument로 넘겨도 되지만, 가끔은 배열(array)이나 길이가 꽤 긴 문자열을 포함해서 이런 복잡한 argument의 개수 자체가 매우 많아지면 argument를 쓰는 것이 성가신 작업이 되고 만다. 그럴 때는 환경변수를 쓰는 방법이 있다.


1. Argument passing 방법


<script_1.sh>

#!/bin/sh

EXP_NAME="wireless simulation 180206"

echo "Experiment name is $EXP_NAME"


./script_2.sh $EXP_NAME


<script_2.sh>

#!/bin/sh

EXP_NAME=$1

echo "Experiment name is $EXP_NAME"



2. 환경변수를 사용하는 방법


<script_1.sh>

#!/bin/sh


EXP_NAME="wireless simulation 180206"

FLOW_SET="0 1 2 3 4 5 6 7 8 9"


echo "Script 1 - experiment name is $EXP_NAME"

for item in $FLOW_SET

do

    # Do some tasks.

    echo "Script 1 - working on $item"

done


export EXP_NAME

export FLOW_SET

./script_2.sh


<script_2.sh>

#!/bin/sh


echo "Script 2 - experiment name from environment variable: $EXP_NAME"

for i in $FLOW_SET

do

    echo "Script 2 - working on $i"

done


<환경변수를 이용한 방법 실행 결과>




반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu Desktop 14.04.2 LTS (amd64)


우분투에서 .sh 파일을 더블클릭했을 때 실행되는 대신 gedit 텍스트 편집기가 뜬다면 dconf-editor로 설정을 변경한다.

우선 dconf-editor 설치가 되어 있어야 한다.


콘솔에서 dconf-editor 를 실행하고,
org > gnome > nautilus > preferences 선택한 다음,
오른쪽에서 executable-text-activation 항목이 display로 되어 있는 것을 "launch"로 변경한다.


만약 그때그때 실행하거나 텍스트 파일 편집 목적이 다를 경우에는 "ask"를 선택한다.

dconf-editor를 종료하고 (별도의 저장 명령이 없으므로 그냥 종료하면 됨) .sh 파일을 더블클릭해 보면 실행여부 확인이 가능하다.





반응형
블로그 이미지

Bryan_

,