當前位置:首頁 » 網頁前端 » shell腳本分號是什麼意思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

shell腳本分號是什麼意思

發布時間: 2023-08-30 17:31:01

A. shell腳本中:<<表示什麼意思啊

<< 後面應該還有標識的吧,那個標識就定義為分界符
s h e l l將分界符之後直至下一個同樣的分界符之前的所有內容都作為輸入,遇到下一個分界符, s h e l l就知道輸入結束了

B. shell腳本中的$*,$@和$#是什麼意思

我沒用過$@,但是可以自己寫個腳本測試下。
先介紹下我知道的,如下:
位置變數 :$0,$1,$2,$3,$4,$5,$6,$7,$8,$9 $0顯示運行的腳本,$1...顯示位置參數的值
預定義變數:

$# 表示位置參數的數量
$* 表示所有位置參數的內容
$? 表示命令執行後返回的狀態 (執行成功 返回0 執行不成功 返回非0)
$$ 表示當前進程的進程號 希望打開一個進程後不再打開另一個(/proc/<PID>)
$! 表示後台運行的最後一個進程號
$0 表示當前的進程名

測試腳本如下:(位置變數只輸出到$3)
[root@XP-24-35 script]#vim a.sh
#!/bin/bash
echo '$0 ==> ' $0
echo '$1 ==> ' $1
echo '$2 ==> ' $2
echo '$3 ==> ' $3
echo '$$ ==> ' $$
echo '$* ==> ' $*
echo '$@ ==> ' $@
echo '$# ==> ' $#
echo '$? ==> ' $?

執行結果1(輸入小於三個位置參數a,b)
[root@XP-24-35 script]# ./a.sh a b
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==>
$$ ==> 4847
$* ==> a b
$@ ==> a b
$# ==> 2
$? ==> 0

執行結果2(剛好輸入三個位置參數)
[root@XP-24-35 script]# ./a.sh a b c
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==> c
$$ ==> 4844
$* ==> a b c
$@ ==> a b c
$# ==> 3
$? ==> 0

執行結果3(輸入大於3個位置參數)
[root@XP-24-35 script]# ./a.sh a b c d e f
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==> c
$$ ==> 4852
$* ==> a b c d e f
$@ ==> a b c d e f
$# ==> 6
$? ==> 0

實驗結果說明一切,忘採納,謝謝。

C. 請問shell腳本第一行 -f的含義: #!/usr/bin/awk -f 這個位置還有哪些值,分別表示什麼

Linux下腳本的第一行#! 是指明本腳本使用哪個解釋器來執行當前腳本,從頭文件看出這個一個awk腳本,第一行的意思可以理解為 使用 /usr/bin/awk -f 腳本名 來執行當前腳本:
比如腳本:test.awk的第一行是#!/usr/bin/awk -f那麼執行這個腳本的時候就會根據第一行去尋找解釋器,效果相當於在shell下執行
/usr/bin/awk -f test.akw
這里的-f是awk命令的一個參數,是從文件中讀取腳本執行的意思.