Shell指令碼編寫常用——————持續更新
阿新 • • 發佈:2019-01-08
Linux指令碼
source命令與點命令
單純執行shell指令碼./a.sh, 並不能把指令碼中定義的變數匯入到父shell中, 必須用source的方式執行才可以$0 $? $#...
https://zhidao.baidu.com/question/1688965149272609028.html$0 Shell本身的檔名
$1~$n 新增到Shell的各引數值。$1是第1引數、$2是第2引數…
$$ Shell本身的PID(ProcessID)
$! Shell最後執行的後臺Process的PID
$? 最後執行的命令的結束程式碼(返回值)
$- 使用Set命令設定的Flag一覽
$* 所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有數。
$# 新增到Shell的引數個數
$() 與 ``
eval命令
http://www.cnblogs.com/qingjiaowoxiaoxioashou/p/6601788.htmlLinux邏輯運算子
http://www.cnblogs.com/chengmo/archive/2010/10/01/1839942.htmlcommand >/dev/null 與 command >/dev/null 2>&1
command >/dev/null的作用是將是command命令的標準輸出丟棄,而標準錯誤輸出還是在螢幕上。一般來講標準輸出和標準錯誤輸出都是螢幕,因此錯誤資訊還是會在螢幕上輸出。這時可以用command >/dev/null 2>&1 這樣標準輸出與標準錯誤輸出都會被丟棄。1表示標準輸出,2表示標準錯誤輸出,2>&1表示將標準錯誤輸出重定向到標準輸出。 檔案描述符我們常見的就是系統預留的0,1和2這三個,他們的意義分別有如下對應關係:
0 —— stdin(標準輸入)
1 —— stdout (標準輸出)
2 —— stderr (標準錯誤)
“2> /dev/null” 代表忽略掉錯誤提示資訊
dirname命令
cd - 與 dirs 與 pushd 與 popd
shell指令碼示例
#!/bin/bash
FILE_PATH="/opt/filepath" #變數
echo "The following file or dir exists:"
if [ -f "${FILE_PATH}/a/b.jar" ]; then echo "${FILE_PATH}/a/b.jar" ; fi #IF語句
echo "Done"
#!/bin/bash logss="/var/log/a.log /var/log/b.log" #字串陣列 i=1 #整型變數 while true #while迴圈 do logstr='xxxxxxxxxxxxxxxxxxx' for logfile in $logss; do #for迴圈,變數字串陣列 echo $logfile ls -la $logfile echo $logstr >> $logfile du -sh $logfile #檢視檔案大小 done ((i=$i+1)) #整型變數運算 echo $i sleep 1 #sleep done
Windows指令碼示例
@echo off
SET FILE_PATH=D:\filepath #變數
echo The following file or dir exists:
if exist %FILE_PATH%\a\b.properties ( echo %FILE_PATH%\a\b.properties) #IF語句
echo Done
@echo off
:loops
echo 暫停3秒鐘
start /min /w mshta vbscript:setTimeout("window.close()",3000) #Windows暫停
goto loops #GOTO語句
pause 1>nul