日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell基础知识(三)

發(fā)布時間:2024/7/5 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell基础知识(三) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Shell中變量的作用域:
  • 在當(dāng)前Shell會話中使用,全局變量。
  • 在函數(shù)內(nèi)部使用,局部變量。
  • 可以在其他Shell會話中使用,環(huán)境變量。
局部變量: 默認(rèn)情況下函數(shù)內(nèi)的變量也是全局變量 #!/bin/bash function func() { a=99 }
func
echo $a 輸出 >> 99 為了讓全局變量變成局部變量 #!/bin/bash function func() { local a=99 }
func
echo $a 輸出為空,說明此時變量a是局部變量 環(huán)境變量: 在父Shell中定義的變量,在子Shell中可以調(diào)用。
Shell位置參數(shù) 1) 給腳本傳遞位置參數(shù) 在運(yùn)行shell腳本的時候可以帶入一些位置參數(shù),在腳本中$n來接收參數(shù)的值。如下: #!/bin/bash echo "language: $1" echo "username: $2" 運(yùn)行: >> bash filename.sh Chinese mocun 輸出: >> language: Chinese >> username: mocun 2) 給函數(shù)傳遞位置參數(shù) #!/bin/bash function func() { echo "language: $1" echo "username: $2" }
func c++ mocun 這時就不能在運(yùn)行的時候通過命令傳入了,直接在腳本中調(diào)用函數(shù)的同時給參數(shù)就行。 輸出: >> language: c++ >> username: mocun 如果參數(shù)過多,超過10個了,那么就需要用${n}來接收,幫助解釋器明確參數(shù)的邊界,如:${11}
特殊變量
變量 含義
$0 當(dāng)前腳本的文件名
$# 傳遞給腳本或者函數(shù)的參數(shù)個數(shù)
$* 傳遞給腳本或者函數(shù)的所有參數(shù)
$@ 傳遞給腳本或者函數(shù)的所有參數(shù)。當(dāng)被雙引號包含時,與上述$*有所不同。
$? 上個命令的退出狀態(tài)
$$ 當(dāng)前Shell的進(jìn)程ID。對于Shell腳本,就是這些腳本所在的進(jìn)程ID。
示例,文件名為test.sh: #!/bin/bash echo "Process ID: $$" echo "File Name: $0" echo "First Parameter: $1" echo "Second Parameter: $2" echo "All Parameters 1: $@" echo "All Parameters 2: $*" echo "Total: $#" 運(yùn)行命令: >> bash test.sh yinzm mocun 輸出

Process ID: 39817

File Name: seventh.sh

First Parameter: yinzm

Second Parameter: mocun

All Parameters 1: yinzm mocun

All Parameters 2: yinzm mocun

Total: 2

$*與$@的區(qū)別 簡單說,當(dāng)兩個參數(shù)沒有被雙引號包含時是一模一樣的效果,都是接收若干個獨(dú)立的參數(shù)。但是當(dāng)被雙引號包含時,$*會將得到的所有參數(shù)拼在一起,但是$@仍然是若干個獨(dú)立的參數(shù)。 示例,文件名filename.sh: #!/bin/bash echo "print each param from \"\$*\"" for var in "$*" do echo "$var" done
echo "print each param from \"\$@\"" for var in "$@" do echo "$var" done 運(yùn)行: >> bash filename.sh a b c 輸出:

print each param from "$*"

a b c

print each param from "$@"

a

b

c

$?的作用 1.獲取上一個命令的退出狀態(tài) 2.獲取函數(shù)的返回值

?

轉(zhuǎn)載于:https://www.cnblogs.com/yinzm/p/10325056.html

總結(jié)

以上是生活随笔為你收集整理的Shell基础知识(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。