- 현재날짜/시간 format대로 출력
- 현재 dir가 그 dir가 맞는지
- file/folder 있는지 확인후 만들기, 없으면 에러나 만들기
- if else
- for loop, while
외부 프로그램 실행하기- Input parameter받아 command에 넣기
- parameter validate하기
- website에서 label읽어오기
- sleep, timeout = sleep
- 외부파일을 읽어서 parameter 순차적으로 읽기
http://en.wikibooks.org/wiki/Bash_Shell_Scripting
http://wiki.bash-hackers.org/syntax/pattern
http://linuxcommand.org/wss0130.php
http://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash
Bash header, 날짜구하기, 시간
#!/bin/bash #------------------------------- # Fred Oh (email) # 2015/01/01 starting new life #------------------------------- ulimit today=`date +%m%d` source ~/.bashrc today=`date +%m%d_%H%M%S` $ NOW=$(date +"%m-%d-%Y")
Pattern Matching
#!/bin/bash
#-------------------------------
# Fred Oh (email)
# 2015/01/01 starting new life
#-------------------------------
au_archive_dir="....../LA.BF64.1.2.1"
branch_name='LA.BF64.1.2.1'
au_prefix='AU_LINUX_ANDROID'
cd $au_archive_dir
post_fix_temp=`ls -t 05.01.00.0[0-9][0-9].[0-9][0-9][0-9] | head -1`
echo $post_fix_temp
#Removing last :, first of all why it ends with :
post_fix="${post_fix_temp//:}"
echo POST_FIX is $post_fix
#Extract only last 3 digit number
#au_number="${post_fix:-3:3}" doesn't work T.T
au_number="${post_fix:13:3}"
echo TODAY_AU ${today}_au${su_number}
/^([[:Digit:]]{2}\.){3}([[:Digit:]]{3}\.){2}.*$/{
printf("matches\n");
}
IF/Loop
#!/bin/bash
#-------------------------------
# Fred Oh (email)
# 2015/01/01 starting new life
#-------------------------------
if [ -d "$buildpath" ]; then
buildpath="${buildpath}_1"
echo new $buildpath
fi
count=1
while [[ -d $buildpath ]]; do
if [ $count == 1 ]; then
buildpath=${buildpath}_$count
fi
buildpath=${buildpath:0:-2}_$count
let count=count+1
echo New $buildpath
done
echo Final $buildpath
mkdir $buildpath
cd $buildpath
echo PWD is $PWD
if ! [ $buildpath == $PWD ]; then
echo CD failed
exit 1
else
echo same directory
fi
taking input parameter
#!/bin/bash
#-------------------------------
# Fred Oh (email)
# 2015/01/01 starting new life
#-------------------------------
today=`date +%m%d`
source ~/.bashrc
#check input is NULL
if [ -z $1 ]; then
echo "give me AU label"
exit 1
fi
echo "AU Lable = $1"
#or check input is NULL or not
if [ "$1" != "" ]; then
echo "Positional parameter 1 contains something"
else
echo "Positional parameter 1 is empty"
fi
Sync to latest label and Build
#!/bin/bash
#-------------------------------
# Fred Oh (email)
# 2015/01/01 starting new life
#-------------------------------
today=`date +%m%d`
source ~/.bashrc
au_archive_dir="...../LA.BF64.1.2.1"
branch_name='LA.BF64.1.2.1'
au_prefix='AU_LINUX_ANDROID'
cd $au_archive_dir
#must be 16 character like 05.01.00.066.083
#Fred don't know why post_fix_temp ends up with ':', need to remove ':'
post_fix_temp=`ls -t 05.01.00.0[0-9][0-9].[0-9][0-9][0-9] | head -1`
echo $post_fix_temp
post_fix="${post_fix_temp//:}"
echo $post_fix
#au_number="${post_fix:-3:3}" doesn't work T.T
au_number="${post_fix:13:3}"
echo TODAY_AU ${today}_au${su_number}
buildpath="/local/mnt/workspace/hyosubo/8992_au${au_number}"
count=1
while [[ -d $buildpath ]]; do
if [ $count == 1 ]; then
buildpath=${buildpath}_$count
fi
buildpath=${buildpath:0:-2}_$count
let count=count+1
echo new $buildpath
done
mkdir $buildpath
cd $buildpath
echo PWD is $PWD
if ! [ $buildpath == $PWD ]; then
echo CD failed $buildpath $PWD
exit 1
fi
au_name=$au_prefix'_'$branch_name'.'$post_fix
echo $au_name
#/usr/local/bin/repo init -u git://git.quicinc.com/platform/manifest.git -b LA.BF64.1.2.1
/usr/local/bin/repo init -u git://git.quicinc.com/platform/manifest.git -b refs/tags/$au_name -m versioned.xml
touch README2.txt
/usr/local/bin/repo sync -j8 -q
#/usr/local/bin/repo sync -j8 > reposync_$today.txt
#/usr/local/bin/repo forall -c 'git checkout -b au33 AU_LINUX_ANDROID_KK.04.04.04.010.033'
#/usr/local/bin/repo start tip$today --all
source build/envsetup.sh
lunch msm8992-userdebug
/usr/bin/make -j12 > Buildlog_$today.txt
'Programming' 카테고리의 다른 글
| Web Sequence diagram blog에 넣기 (0) | 2015.04.16 |
|---|---|
| Popcorn Time clone해서 build하기 (0) | 2015.04.14 |
| BAT/CMD windows script to EXE executable converter (0) | 2015.03.17 |
| windows batch file tips (0) | 2015.03.14 |
| syntax highlight test (0) | 2015.03.03 |