Vi editor에서 실행 언어 지정
#!/bin/bash 또는 #!/bin/sh
반복문의 무한 반복
for (( ; ; ))
do
echo "무한반복"
done
while :
do
echo "무한반복"
done
datenow()
{
date
}
: 사용할 땐 그냥 함수 이름만 적으면됨
함수에서 지역변수 설정
function foo()
{
local value="1"
echo "값 : ${value}"
}
foo
함수에서 인자를 줄땐 함수이름 파라미터. 인자 받는법은 $1, $2, $3, ....
함수에서 return 값은 echo 값
shell script에서 Argument 표현방식은
$0 (예약) : 실행된 스크립트 이름
$1~9
${10} ~ ${n}
expr을 이용한 연산
Example: b=`expr $a + 1`
( 백쿼터 사용해야하고, = 을 적을 때 붙여야함 수식 사이엔 공백으로 분리
Special character
$# : argument의 총 개수
$* : 전체 argument 값
shell script에서 배열
예제
#!/bin/bash
echo -n "select first station (st1 or st14):"; read first
cur_station()
{
echo -n "go (y or Y):" ; read go
if [ "$go" == "y" ] || [ "$go" == "Y" ]
then
if [ "$station" == "st5" ] ; then
echo "current station is " $station "(exit)"
exit
else
echo "current station is " $station "(stay)"
fi
else
exit
fi
}
if [ "$first" == "st1" ] ; then
for station in st1 st2 st3 st4 st5 st6 st7 st8 st9 st10 st11 st12 st13 st14
do
cur_station
done
elif [ "$first" == "st14" ] ; then
for station in st14 st13 st12 st11 st10 st9 st8 st7 st6 st5 st4 st3 st2 st1
do
cur_station
done
else
exit
fi
make 실행
make [-f] filename
-> -f 옵션이 없으면 GNUmakefile, Makefile, makefile을 찾아서 사용
make 전체 실행
make
make label 실행
make [라벨이름]
매크로 종류
예제
OBJS = main.o a.o b.o c.o
TARGET = test
CC = gcc
INC = -I /home/
CFLAGS = $(INC)
$(TARGET) : $(OBJS)
gcc -o $(TARGET) $(OBJS)
clean :
rm $(OBJS) $(TARGET)
main.o : main.c
a.o : a.c
b.o : b.c
c.o : c.c
사용자 이름 및 email등록
git config --global user.name NAME
git config --global user.email EMAIL
터미널 생각 출력
git config --global color.ui auto
설정 확인
git config --list
SSH key 생성
ssh-keygen -t rsa -C NAME@changwon.ac.kr
신규 파일 또는 수정한 파일을 Staging Area로 이동
git add [filename]
git add --all / git add .
스토리지 상태 확인
git status
Stating Area -> Working Dir
git rm --cache [파일이름]
Commit 수정하기
git commit --amend -m "새로운 메시지!"
로컬 저장소 변경 내역을 원격 저장소로 전송
git push orgin main
or Recoding
uftrace record main
-> uftrace.data 디렉토리에 만들어짐
-k 옵션 : 커널 내부에서 어떤 작업이 일어나는지
-D [limit] 옵션 : 재귀함수가 너무 깊이 들어가는 경우 보여지는 것을 제한 가능
-F [함수이름] 옵션 : 함수이름만 보고 싶을 때
-N [함수이름] 옵션 : 함수이름을 제외한 결과를 보고싶을 때
-C [함수이름] 옵션 : [함수이름]을 호출한 함수까지 보여줌
-t [숫자]us 옵션 : [숫자] 시간만큼 이상 소요되는 함수 출력
-a 옵션 : 함수 파라미터와 리턴값을 10진수로 보여줌
-A, -R 옵션 : 함수 파라미터와 리턴값를 10진수 또는 16수로 선택해서 볼 수 있음
example) uftrace record -A fib@arg1 -R fib@retval tests/t-fibonacci 5