[root@1311e4955e23 ~]# cat test.sh
# 테스트 파일...
#! /usr/bin/env bash
echo "hello world"
printf "hellow world!"
printf "%s %s" hello world
====================출력================
hello world
hellow world!hello world
=====================================
위에서 보면 알 수 있듯이 echo는 자동 줄바꿈. printf는 없다. %s로 출력 가능. #은 주
[root@3aa88b5d0f0a ~]# cat test.sh
# 두번째 테스트 파일...
#! /usr/bin/env bash
string_test() {
echo "string test"
}
function string_test2() {
echo "string test 2"
echo "인자값: ${@}"
}
string_test
string_test2
echo "함수에 인자값 전달하기"
string_test2 "hi" "world"
====================출력================
string test
string test 2
인자값:
함수에 인자값 전달하기
string test 2
인자값: hi world
=====================================
[root@3aa88b5d0f0a ~]# cat export_test2.sh
#! /usr/bin/env bash
hello_world="this is test2 shell"
[root@3aa88b5d0f0a ~]# cat export_test.sh
#! /usr/bin/env bash
# 전역변수 지정
string="hello world"
echo ${string}
# 지역 변수 테스트
string_test(){
local string="localS"
echo ${string}
}
string_test
echo ${string}
export hello_world="hello world..."
~/export_test2.sh #자식 스크립트 호출. hello_world="this is test2 shell"
echo ${hello_world}
====================출력================
hello world
localS
hello world
hello world...
=====================================
# 전역 변수는 현재 실행된 스크립트 파일에서만 유효하다.
# 즉, 자식 스크립트에서 못 가져온다.
==========================================================================
[root@3aa88b5d0f0a ~]# echo $HOME
/root
사용자의 홈 디렉토리
==========================================================================
[root@3aa88b5d0f0a ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
실행 파일을 찾을 경로
==========================================================================
[root@3aa88b5d0f0a ~]# echo $LANG
en_US.UTF-8
프로그램 사용시 기본 지원되는 언어
==========================================================================
[root@3aa88b5d0f0a ~]# echo $PWD
/root
사용자의 현재 작업중인 디렉토리
==========================================================================
[root@3aa88b5d0f0a ~]# echo $FUNCNAME
현재 함수 이름
==========================================================================
[root@3aa88b5d0f0a ~]# echo $SECONDS
2260
스크립트가 실행된 초 단위 시간
==========================================================================
[root@3aa88b5d0f0a ~]# echo $SHLVL
1
쉘 레벨(중첩된 깊이를 나타냄)
==========================================================================
[root@3aa88b5d0f0a ~]# echo $SHELL
/bin/bash
로그인해서 사용하는 쉘
==========================================================================
[root@3aa88b5d0f0a ~]# echo $PPID
0
부모 프로세스의 PID
==========================================================================
[root@3aa88b5d0f0a ~]# echo $BASH
/bin/bash
BASH 실행 파일 경로
==========================================================================
[root@3aa88b5d0f0a ~]# echo $BASH_ENV
스크립트 실행시 BASH 시작 파일을 읽을 위치 변수
==========================================================================
[root@3aa88b5d0f0a ~]# echo $BASH_VERSION
4.4.19(1)-release
설치된 BASH 버전
==========================================================================
[root@3aa88b5d0f0a ~]# echo $OSTYPE
linux-gnu
운영체제 종류
==========================================================================
[root@3aa88b5d0f0a ~]# echo $TERM
xterm
로그 터미널 타입
==========================================================================
[root@3aa88b5d0f0a ~]# echo $HOSTNAME
3aa88b5d0f0a
호스트 이름
==========================================================================
[root@3aa88b5d0f0a ~]# echo $HOSTTYPE
x86_64
시스템 하드웨어 종류
==========================================================================
[root@3aa88b5d0f0a ~]# echo $MACHTYPE
x86_64-redhat-linux-gnu
머신 종류
==========================================================================
[root@3aa88b5d0f0a ~]# echo $LOGNAME
로그인 이름
==========================================================================
[root@3aa88b5d0f0a ~]# echo $UID
0
사용자 UID
==========================================================================
[root@3aa88b5d0f0a ~]# echo $USER
사용자의 이름
==========================================================================
[root@3aa88b5d0f0a ~]# echo $GROUPS
0
사용자 그룹(/etc/passwd 값을 출력)
==========================================================================
[root@3aa88b5d0f0a ~]# echo $HISTSIZE
500
history 저장되는 개수
==========================================================================
[root@3aa88b5d0f0a ~]# echo $HISTFILE
/root/.bash_history
history 파일 경로
==========================================================================
jihong@jeongjihong:~$ echo $0
-bash
실행된 스크립트 이름
==========================================================================
jihong@jeongjihong:~$ echo $1
$1 $2 $3...${10}인자 순서대로 번호가 부여. 10부터는 { } 로 감싸줘야함
==========================================================================
jihong@jeongjihong:~$ echo $*
전체 인자 값
==========================================================================
jihong@jeongjihong:~$ echo $@
전체 인자 값
==========================================================================
jihong@jeongjihong:~$ echo $#
0
매개 변수의 총 개수
==========================================================================
jihong@jeongjihong:~$ echo $$
16875
현재 스크립트의 PID
==========================================================================
jihong@jeongjihong:~$ echo $?
0
최근에 실행된 명령어, 함수, 스크립트 자식의 종료 상태
==========================================================================
jihong@jeongjihong:~$ echo $!
최근에 실행한 백그라운드 명령의 PID
==========================================================================
jihong@jeongjihong:~$ echo $-
himBHs
현재 옵션 플래그
==========================================================================
jihong@jeongjihong:~$ echo $_
himBHs
지난 명령의 마지막 인자로 설정된 특수 변수
jihong@jeongjihong:~$ string="abc-efg-123-abc"
jihong@jeongjihong:~$ echo ${string}
abc-efg-123-abc
# 전체 출력
jihong@jeongjihong:~$ echo ${string:2}
c-efg-123-abc
# 해당 인덱스부터 출력
jihong@jeongjihong:~$ echo ${string:2:5}
c-efg
# 해당 인덱스부터 주어진 길이까지 출력