父程序中執行
-> source及點(.)
子程序中執行
-> 點斜線(./)及sh
在子程序執行的各項變數及動作並不會回傳至父程序
因此像android build code前需initial環境設置
就必須執行
source build/envsetup.sh
或
. build/envsetup.sh
ref:http://linux.vbird.org/linux_basic/0340bashshell-scripts.php (script 的執行方式差異)
2014年1月21日 星期二
2013年4月19日 星期五
2013年1月8日 星期二
[ShellScript] 判斷變數為空
1. 變量通過" "引號引起來
如下所示:,可以得到結果為 IS NULL.
#!/bin/sh if [ ! -n "$para1" ]; then echo "IS NULL" else echo "NOT NULL" fi
2. 直接通過變量判斷
如下所示:得到的結果為: IS NULL
#!/bin/sh if [ ! $para1 ]; then echo "IS NULL" else echo "NOT NULL" fi
ref:http://blog.csdn.net/lllxy/article/details/3255554
2012年9月21日 星期五
[Linux][ShellScript] grep應用
問題
一個txt內存有檔案路徑列表,對此txt中每一檔案路徑做關鍵字查詢
.
├── file.txt
├── a.txt
├── b.txt
├── c.txt
└── test.sh
解法
$ cat file.txt |xargs grep "keyword"
出來的結果是出現有搜尋到關鍵字的檔名,及關鍵字
path/a.txt:keyword
path/b.txt:keyword
只顯示又搜尋到關鍵字的檔名
$ cat file.txt |xargs grep "keyword" |awk -F: '{print $1}'
[Linux][ShellScript] awk - 取得token, 以符號切割
Data=123:aa bbb c
1). 擷取某個token
Ex1: 擷取第2個token
$ awk '{print $2}' Data
Ex2: 擷取第2.3個token
$ awk '{print $2,$3}' Data
2). 以符號切割,並取冒號之後的字串
$ awk -F: '{print $2} Data'
1). 擷取某個token
Ex1: 擷取第2個token
$ awk '{print $2}' Data
Ex2: 擷取第2.3個token
$ awk '{print $2,$3}' Data
2). 以符號切割,並取冒號之後的字串
$ awk -F: '{print $2} Data'
2012年8月15日 星期三
[Linux][ShellScript] 輸出變數
變數要從母script傳到子script
母script=1.sh
子script=2.sh
1). 在母script export需要的變數
name=John
export name
./2sh
2). 在子script就可以直接用了
母script=1.sh
子script=2.sh
1). 在母script export需要的變數
name=John
export name
./2sh
2). 在子script就可以直接用了
[Linux][ShellScript] Shell Script分隔變數
Shell Script
1). 宣告變數:name
name=John
2). 呼叫變數:$name or ${name}
echo $name
echo ${name}
※若變數一起打,沒有用{}區隔,容易有混淆
(X) echo $name_$number →僅會顯示number
(O) echo ${name}_${number}
1). 宣告變數:name
name=John
2). 呼叫變數:$name or ${name}
echo $name
echo ${name}
※若變數一起打,沒有用{}區隔,容易有混淆
(X) echo $name_$number →僅會顯示number
(O) echo ${name}_${number}
訂閱:
文章 (Atom)