當前位置:首頁 » 網頁前端 » 查看sh腳本內容
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

查看sh腳本內容

發布時間: 2022-08-19 02:45:50

① shell 判斷腳本是否有帶參數

執行「nano test.sh」創建一個新的shell腳本。

腳本test.sh的內容如下:
#!/bin/sh

name=$1

echo "the ${name} are great man!"

給新創建的test.sh的腳本賦可執行許可權,命令為「chmod 755 test.sh」。

執行'./test.sh "xiao wang"'命令,可以看到自己編寫腳本的結果「the xiao wang are great man!」。

"name=$1"中$1為系統提供的位置參數,$0代表程序的名稱,[$1/$2/...]從1開始為傳遞的參數。
6
linux系統除了提供位置參數還提供內置參數,內置參數如下:
$# ----傳遞給程序的總的參數數目
$? ----上一個代碼或者shell程序在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程序的所有參數組成的字元串。
$n ----表示第幾個參數,$1 表示第一個參數,$2 表示第二個參數 ... $0 ----當前程序的名稱
$@----以"參數1" "參數2" ... 形式保存所有參數
$$ ----本程序的(進程ID號)PID
$! ----上一個命令的PID

② linux執行sh腳本的指令有哪些

bash shell 腳本的方法有多種,現在作個小結。假設我們編寫好的shell腳本的文件名為hello.sh,文件位置在/data/shell目錄中並已有執行許可權。
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:

復制代碼代碼如下:

cd /data/shell

./hello.sh

./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。

方法二:以絕對路徑的方式去執行bash shell腳本:

復制代碼代碼如下:

/data/shell/hello.sh

方法三:直接使用bash 或sh 來執行bash shell腳本:

復制代碼代碼如下:

cd /data/shell

bash hello.sh



復制代碼代碼如下:

cd /data/shell

sh hello.sh

注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。

方法四:在當前的shell環境中執行bash shell腳本:

復制代碼代碼如下:

cd /data/shell

. hello.sh



復制代碼代碼如下:

cd /data/shell

source hello.sh

前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。

③ 如何查看一台伺服器哪些sh腳本是在運行的

ps -ef | grep 是查看所有的正在運行的腳本的情況,

ps -ef | grep -a.sh 是查看a.sh腳本的運行情況,如果看到有進程號就證明是在運行的。

④ 如何調試shell腳本各種方法都說說。

方法一:sh -x script.sh
-x選項會將運行到的腳本內容顯示在屏幕上,前面有個+號。這樣就知道哪句被執行到了。對調試很有幫助。

方法二:在腳本中使用debug開關
適用於只調試部分腳本的情況。
set -x
......(要調試的代碼段)
set +x
然後sh script.sh運行腳本

方法三:在腳本中添加列印
比如搞個log輸出函數,專門用於列印調試相關信息。
_log()
{
if [ "$_DEBUG" = "true" ]; then
echo "調試信息"
fi
}
只要在外面控制$_DEBUG開關即可。

⑤ shell腳本查看文件是否含有內容

#!/bin/sh
DIRECTORY=$1
if [ "`ls -A $DIRECTORY`" = "" ]; then
echo "$DIRECTORY is indeed empty"
else
echo "$DIRECTORY is not empty"
fi

⑥ 怎麼在網站上運行SH腳本

Subversion是一個強大的版本控制系統,特別是它能夠輕松地處理庫管理進程中在各個點上的數據。在進行提交後、或者進行提交前,或鎖定、或解鎖文件中,或者在其它情況下,你都能擁有腳本句柄數據。所有的這些都是通過hook實現的,hook是subversion庫結構中的一部分。Hook 由一個庫事件來觸發的。例如,如果你有一個subversion庫存放在/subversion/repos/packages下,那麼你的hook將被存放在/subversion/repos/packages/hooks目錄下。

在這個hook目錄下存放著大量的臨時文件。這些文件只是作為例子來存在。所以如果你想寫一個腳本能在每次提交後,把subversion數據用e -mail發送給你的話,你應該拷貝post-commit.tmpl到post-commit中,把它變為可執行的,並按照你的需要去編輯它。

這些腳本能從subversion網站上獲得,同時也有些其它用戶提供的腳本和工具。你能在subversion.tigris.org/tools_contrib.html上瀏覽到許多這樣的腳本。目前最感興趣的是郵件提交的(post-commit e-mail)腳本commit-email.pl。把這個文件下載下來,並把它放在/usr/local/bin/下面,然後使它變成可執行的。同時在 hooks/post-commit腳本中,在該文件末尾增加上以下內容:

REPOS=""

REV=""

/usr/local/bin/commit-email.pl "$REPOS" "$REV" --from [email protected] -s

"SVN commit in packages" [email protected]

這個將執行的commit-e-mail.pl腳本會帶有一些參數,也就是庫名和你做的修訂。它將按照指定的主題路線從 [email protected]網站上發送e-mail到[email protected]上,[email protected]網站上有些指定的用戶或者郵件列表。

如果你想在站點上查看其它的腳本,你可以在版本控制軟體庫的管理器中看到許多有趣的腳本。在整個數據被提交到subversion之前,這些腳本能夠做某些檢查,比如,各種預提交檢查腳本。

⑦ Linux中sh腳本裡面的問題。

$@:表示所有腳本參數的內容
$#:表示返回所有腳本參數的個數。

示例:編寫如下shell腳本,保存為test.sh
#!/bin/sh
echo "number:$#"
echo "argume:$@"
執行腳本:
./test.sh first_arg second_arg

說明:給腳本提供了兩個參數,所以$#輸出的結果是2,$@代表了參數的內容!