shell練習

工作中經常會寫一些shell腳本,很多東西都是用着用着就熟悉了。

對於shell裏面一些常用的命令用法和一些常見符號含義,記錄下,方便查找,我只是搬運工~~


shell腳本路徑:/home/rank/liang.yang3/shell_test            文件名:dir_test.sh

cur_dir=`pwd`    反單引號,不是單引號
cmd_dir=`dirname $0`     獲取shell腳本路徑(不含文件名),$0 表示執行的shell腳本名稱,$1,$2分別代表第1,2 個參數
echo "cur_dir: $cur_dir"
echo "cmd_dir: $cmd_dir"


if [[ "$cmd_dir" = "." ]]; then            如果在腳本所在目錄下這樣執行腳本:sh dir_test.sh 或者 sh ./dir_test.sh 
  src_dir=$cur_dir
elif [ "${cmd_dir:0:2}" = "./" ]; then  如果在/home/rank/liang.yang3目錄下這樣執行:sh ./shell_test/dir_test.sh 
  src_dir="$cur_dir/${cmd_dir:2}" 
else  
  src_dir="$cmd_dir"
fi
echo "src_dir: $src_dir"                   獲取了所執行shell腳本的絕對路徑


hitter_config="liang.yang3/tempFile/temp_statis_20140906"   

file_name=`basename $hitter_config`       file_name=temp_statis_20140906 切割得到文件名

output_dir="`dirname $src_dir`/output"      output_dir=/home/rank/liang.yang3/output,獲取src_dir的上級目錄,然後得到outout_dir


一些常用符號含義

例如執行:sh ./shell_test/dir_test.sh  p1 p2

$0 shell腳本名稱,會帶上路徑。 ./shell_test/dir_test.sh
$n 這個程式的第n個參數值。  $1=p1, $2=p2
$* 這個程式的所有參數,此選項參數可超過9個。   p1 p2

$# 這個程式的參數個數

$? 執行上一個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)


下面的還暫時沒用到,沒有實驗過~~~

$$ 這個程式的PID(腳本運行的當前進程ID號)
$! 執行上一個背景指令的PID(後臺運行的最後一個進程的進程ID號)
$- 顯示shell使用的當前選項,與set命令功能相同
$@ 跟$*類似,但是可以當作數組用
發佈了33 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章