# 변수 작성후 출력(변수명과 값사이에 =는 공백이 없어야 한다)

#!/bin/bash

item="ice cream"

echo "${item} 구매완료"

 

 

# 함수 작성후 호출(function은 생략이 가능하다)

#!/bin/bash

# 다른 언어와 다르게 인수가 있어도 함수괄호 안에는 아무것도 입력하지않음
purchase(){
item=$1
echo "${item}을 장바구니에 넣었습니다"

return 0

}

# main
# 함수 호출
purchase "아이스크림"
result=$?  # 함수 호출후 바로 아래에 $?로 함수리턴값을 받을수 있다

# 함수 결과값을 판단
if [ result -eq 0 ]; then
    echo "문제없음"
    exit 0
else
    echo "문제있음"
    exit 1
fi

 

# 프로그램 실행

#!/bin/bash

# 다른프로그램 호출
sh home/user/itemDelete.sh "iceCream"
result=$?  # 함수와 마찬가지로 호출후 바로 아래에 $?로 함수리턴값을 받을수 있다

# 함수 결과값을 판단
if [ result -eq 0 ]; then
    echo "문제없음"
    exit 0
else
    echo "문제있음"
    exit 1
fi

 

# 다른유저권한으로 프로그램 실행(외부 프로그램)

#!/bin/bash

# 다른유저로 전환해 해당프로그램을 실행
# 전환한 유저의 환경변수를 이용하는 경우 -를 추가한다
echo "password" | "ID" -c "sh home/user/itemDelete.sh iceCream"
# echo "password" | "ID" - -c "sh home/user/itemDelete.sh iceCream"
result=$?  # 호출후 바로 아래에 $?로 함수리턴값을 받을수 있다

# 함수 결과값을 판단
if [ result -eq 0 ]; then
    echo "문제없음"
    exit 0
else
    echo "문제있음"
    exit 1
fi

 

# 다른유저권한으로 프로그램 실행(내부 작성)

#!/bin/bash

purchase(){
item=$1
echo "${item}을 장바구니에 넣었습니다"
return 0
}

# 함수를 환경변수로 내보냄
export -f purchase

# 다른유저로 전환해 해당프로그램을 실행
# -를 넣지않고 환경변수를 유지
echo "password" | "ID" -c "

# 10행에서 내보낸 환경변수 호출
purchase "아이스크림"
result=$?  # 함수 호출후 바로 아래에 $?로 함수리턴값을 받을수 있다

# 함수 결과값을 판단
if [ result -eq 0 ]; then
    echo "문제없음"
    exit 0
else
    echo "문제있음"
    exit 1
fi

"
result=$?  # 호출후 바로 아래에 $?로 함수리턴값을 받을수 있다

# 함수 결과값을 판단
if [ result -eq 0 ]; then
    echo "문제없음"
    exit 0
else
    echo "문제있음"
    exit 1
fi

 

# 함수의 리턴값은 정수만 가능하다(문자열 리턴 불가능)

#!/bin/bash

# 정수값을 반환
purchase(){
item=$1
echo "${item}을 장바구니에 넣었습니다"

return 0 # 대개 0: 정상 1: 오류로 취급한다

}

# 문자열을 반환(에러가 발생)
purchase(){
item=$1
echo "${item}을 장바구니에 넣었습니다"

return "정상"

}


# 문자열을 반환하고 싶을때에는 전역변수에 값을 할당하는 식으로 반환이 가능하다

result=""

purchase(){
item=$1
echo "${item}을 장바구니에 넣었습니다"
result="정상"

return 0

}

'Programming > Shell Script' 카테고리의 다른 글

[Bash] 변수 취급방법  (0) 2023.07.12
[Bash] Shell Script 문법  (0) 2023.07.05
[Bash]Shell Script 기초  (0) 2023.07.04

+ Recent posts