導航:首頁 > 操作系統 > linux腳本定義變數

linux腳本定義變數

發布時間:2023-06-11 01:03:05

A. 知道linux 腳本中 ${#xxx[@]} 是什麼意思嗎

題主你好,

xxx應該是一個數組, ${#xxx[@]}應該是輸出xxx數世漏大組中元素的個數.

我舉了個例子,題主可以參考一下:

希望可以幫到題主搜沖, 歡迎追問搜豎.

B. linux腳本文件中怎麼從文件中讀取數據並賦值給變數

linux腳本文件中,從文件中讀取數據並賦值給變數的操作方法和步驟如下:

1、首先,創建一個名.shell.sh的文件:vi shell.sh,如下圖所示。

C. 如何正確在Linux Shell腳本中定義一個時間變數

1、創建腳本 test.sh,並入截圖內容。

D. linux中的shell變數的種類及各種類的用處是什麼

2.1.1 本地變數
定義:是在用戶現在的shell生命期的腳本中使用;
例:[redhat@server redhat]$name="Red Hat Linux" #把變數設置為Red Hat Linux
[redhat@server redhat]$echo ${name} or #顯示變數內容
=[redhat@server redhat]$echo $name #等同上面的語意
Red Hat Linux #顯示其設定內容,
[redhat@server redhat]$set | grep "name" #查看剛才所設定的內容,或不加'grep "name"'查看用戶自己所有的本地變數,
[redhat@server redhat]$readonly name #把name這個變數設置為只讀變數,不允許再次設置,這可參考變數定義;-_-!
[redhat@server redhat]$name="He SenLin" #重新賦值
bash:name:readonly variable #只讀文件系統
[redhat@server redhat]$readonly #查看系統存在的只讀文件
附:重新登錄一下系統,再次用
[redhat@server redhat]$echo ${name}
#本地變數就不存在了,
說明本地變數只能存活在用戶shell的生命周期中,重登錄就不在了,
2.1.2 環境變數
定義:環境變數用於所有用戶進程<通稱為子進程>,包括編輯器,腳本和應用,登錄進程為父進程,shell中執行的用戶進程均為子進程,不像本地變數只用於現在的shell.
存在目錄在所有用戶的主目錄下<即/home>/.bash_profile或
如何設置環境變數?第一種方法就是編輯上面的二個文件,還可以用"export"進行設定或更改;這可不像本地變數只需 name="Red Hat Linux"那樣簡單,但卻可以把本地變數更改為環境變數;只須在本地變數結束後,輸入:export <變數名>;例,我們把name由本地變數修改為環境變數,我們可以這樣做;
[root@server root]#name="Red Hat Linux" #本地變數
[root@server root]#export name #變數name由本地升為環境
當然也可以用下面這種方法;
[root@server root]#export name="Red Hat Linux" #直接定義name為環境變數;
定義後,可通過env進行查看,不知道上面的本地環境變數由哪個命令進行查看你記住了沒有?,演示一下查看現在定義的環境變數;
[root@server root]#env | grep "name"
Red Hat Linux
同樣不加後面grep "name",這個參數也是查看所有的環境變數;更同樣的是我們也可以運行readonly這個參數給name以只讀屬性;
Tips:環境變數就是全部包含在本地變數中<因為它即可運行中父進程中也可運行於子進程中>,注意一點,本地變數不能運行在全部進程中,只有環境變數可以,再不懂就聯想一下人與自然吧;-_-!還是不會?用絕招:
[root@server root]#you=myfriend #設置本地變數name為myfriend
[root@server root]#echo ${you} #查看一下是否成功
myfriend #成功
[root@server root]#sh #更換shell環境等同重登錄,這相當一個
sh-2.05b#echo $you #用戶子進程
#沒顯示,說明不存在,真的不存在?
sh-2.05b#exit #返回bash環境
[root@server root]#echo $you #再次查看;
myfriend #又出來了,怎麼回事?
[root@server root]#export you #把變數you設為環境變數;
[root@server root]#sh #再試一次;
sh-2.05b#echo $you
myfriend #ok,you see?
再不懂,,你就把我殺了吧,,什麼,你不知道我住在哪?汗-_-!
再補充一點,就是在sh進程中設置環境變數是可以寫回bash環境中,因為bash是父進程,只有老的才有小的,小的怎麼才能有老的哩?<長大了就有老的嘍,哦,也對!..亂語>
2.1.3 變數替換
定義:用變數的值替換它的名字.
查看方式:echo <通用本地,環境...>
可以用echo顯示可以單個變數的取值;
[root@server root]#str="this is example" #設置本地變數
[root@server root]#echo "can you see `echo $str`" #顯示
cat you see this is example #替換就到這了,不明白明再來
變數替換續
除了上面的這個方式以外還有五種哦;別急,一個一個來;-_-!<先說好,偶不是皮條>
格式 定義
${variable name} 顯示實際值到variable name 1

${variable name :+value} 如果設置了variable name,就把value顯示,
未設置則為空; 2
${variable name:-value} 如果設置了variable name,就顯示它,未設置就顯示
value<僅顯不存本地中>>; 3
${variable name:?value} 未設置提示用戶錯誤信息value; 4
${variable name:=value} 如未設置就把value設置並顯示<寫入本地中>, 5
變數清除:
unset <變數name>
[root@server root]#echo $name #變數 name是否存在?
Red Hat Linux #存在
[root@server root]#unset name #清除name變數
[root@server root]#echo $name #是否成功
#成功
注意:如果用readonly限制了只讀屬性就會失敗,還有怎麼從環境變數中去掉那個變數呢?還記的用哪個設定環境變數的嗎?對.export,只須在它後面加"-n"參數即可
2.1.4 位置變數
定義:位置變數表示$0,$1,$2,....$9
$0 $1 $2 $3 $4
腳本名 A B C D
向腳本中使用位置參數;
向系統命令傳遞參數;
例:./test<在程序中進行替換>
[root@server root]#vi /test #創建並編輯/test文件
#!/bin/bash
#test
echo "這是腳本的第一個名稱: $0"
echo "這是腳本的第二個位置參數: $1"
echo "這是腳本的第三個位置參數: $2"
echo "這是腳本的第四個位置參數: $3"
echo "這是腳本的第五個位置參數: $4"
[root@server root]#chmod u+x ./test #加執行許可權;
[root@server root]#./test A B C #加參數證驗
echo "這是腳本的第一個名稱: ./test
echo "這是腳本的第二個位置參數: A
echo "這是腳本的第三個位置參數: B
echo "這是腳本的第四個位置參數: C
echo "這是腳本的第五個位置參數:
<向系統命令中傳遞位置參數>
[root@server root]#vi test1.sh #新建一個腳本文件
#!/bin/bash
#name:test1.sh
#to call: test1.sh 755 #使用方式
find ~ -perm $1 -print
$2 #系統命令
[root@server root]#chmod u+c test1.sh
[root@server root]#./test1.sh 755 date #位置一為755,2位date
/dev/ip
/dev/iput
.
.
.
Fri May 13 2:31:54 CST 2006

2.1.5 標准變數:
bash默認建立一些環境變數就是標准變數,可以通俗的說就是不是你加的而是裝好機子帶的那些環境變數, 可在/etc/profile中進行定義,
命令 意義
HOME 用戶主目錄
IFS 默認分隔符
MAIL 郵箱地址
MAILCHECK 郵箱檢查間隔
PWD 用戶當前工作目錄
LOGNAME 當前用戶登錄名
2.1.6 特殊變數
命令 意義
$# 傳遞到腳本的參數列表
$? 前個命令執行情況,0成功,其它值失敗
$$ 腳本運行的當前進程號
$! 運行腳本最後一個命令
$* 顯示腳本全部參數
2.1.7 影響變數的命令
declare 設置或顯示變數
-f 只顯示函數名
-r 創建只讀變數
-x 創建轉出變數
-i 創建整數變數
使用"+"代替"-",可以顛倒選項的意思,-r除外,
export 用於傳遞給子shell的變數
-- 表明選項結束,所有後續參數都是實參,
-f 表明在"名-值"對中的名字是函數名,
-n 把全局變數轉換成局部變數,換句話就是不再傳給shell
-p 顯示全局變數列表,
shift
用於移動位置變數,調整位置變數,使$3的值賦給$2.$2的值賦予$1.

[root@server root]#vi /test
#!/bin/bash
#test
echo "這是腳本的第一個名稱: $0"
echo "這是腳本的第二個位置參數: $1"
echo "這是腳本的第三個位置參數: $2"
echo "這是腳本的第四個位置參數: $3"
echo "這是腳本的第五個位置參數: $4"
shift
echo "這是腳本的第二個位置參數: $1"
echo "這是腳本的第三個位置參數: $2"
[root@server root]#chmod u+x ./test
[root@server root]#./test A B C
echo "這是腳本的第一個名稱: ./test
echo "這是腳本的第二個位置參數: A
echo "這是腳本的第三個位置參數: B
echo "這是腳本的第四個位置參數: C
echo "這是腳本的第五個位置參數: $4"
shift #顯示的時候並沒有,加在此只會明了
echo "這是腳本的第二個位置參數: B
echo "這是腳本的第三個位置參數: C
給shfit加一個數試一下:
[root@server root]#vi ./test
#!/bin/bash
#test
echo "這是腳本的第一個名稱: $0"
echo "這是腳本的第二個位置參數: $1"
echo "這是腳本的第三個位置參數: $2"
echo "這是腳本的第四個位置參數: $3"
echo "這是腳本的第五個位置參數: $4"
shift 2
echo "這是腳本的第二個位置參數: $1"
echo "這是腳本的第三個位置參數: $2"
[root@server root]#./test A B C D
echo "這是腳本的第一個名稱: ./test
echo "這是腳本的第二個位置參數: A
echo "這是腳本的第三個位置參數: B
echo "這是腳本的第四個位置參數: C
echo "這是腳本的第五個位置參數: D
shift 2 #顯示的時候並沒有,加在此只會明了
echo "這是腳本的第二個位置參數: C
echo "這是腳本的第三個位置參數: D

第二節 引號
2.1 引號的必要性
2.2 雙引號有什麼作用
2.3 單引號的作用
2.4 反引號的作用
2.5 反斜杠的作用

E. linux shell腳本,怎樣變數傳遞執行結果

1、shell一般都是放在/bin或者/user/bin目錄下,我們可以使用命令cat /etc/shells命令,查看當前linux系統可用的shell是什麼。

F. linux的shell腳本中的set是什麼意思怎麼理解

set命令作用主要是顯示系統中已經存在的shell變數,以及設置shell變數的新變數值。使用set更改shell特性時,符號"+"和"-"的作用分別是打開和關閉指定的模式。set命令不能夠定義新的shell變數。如果要定義新的變數,可以使用declare命令以變數名=值的格式進行定義即可。使用:set(選項)(參數)
例如:
declare mylove='Visual C++' #定義新環境變數
再使用set命令將新定義的變數輸出為環境變數,輸入如下命令: set -a mylove
標示已修改的變數,以供輸出至環境變數。
-b:使被中止的後台程序立刻回報執行狀態
-C:轉向所產生的文件無法覆蓋已存在的文件
-d:Shell預設會用雜湊表記憶使用過的指令,以加速指令的執行。使用-d參數可取消。
-e:若指令傳回值不等於0,則立即退出shell。
-f:取消使用通配符。
-h:自動記錄函數的所在位置。
-H Shell:可利用"!"加<指令編號>的方式來執行history中記錄的指令。
-k:指令所給的參數都會被視為此指令的環境變數。
-l:記錄for循環的變數名稱。
-m:使用監視模式。
-n:只讀取指令,而不實際執行。
-p:啟動優先順序模式。
-P:啟動-P參數後,執行指令時,會以實際的文件或目錄來取代符號連接。
-t:執行完隨後的指令,即退出shell。
-u:當執行時使用到未定義過的變數,則顯示錯誤信息。
-v:顯示shell所讀取的輸入值。
-x:執行指令後,會先顯示該指令及所下的參數。

G. Linux環境變數定義問題

一.暫時使用

亦即重啟或注銷後就失效了。

使用 PATH=$PATH:目錄:目錄... 直接賦值。如export PATH=$PATH:/sbin。

二.長期使用

在全局文件 /etc/profile 中或用戶自定義文件 ~/.bash_profile 中添加上述命令即可!

H. Linux Shell 中如何定義整型變數

if [ $tmp -lt 10 ] 變數前面加$號

I. linux腳本文件中export變數的作用是什麼

  1. export用於聲明一個環境變數:

  2. export variable=value

  3. 該環境變數只在本進程和其子進程中可以訪問。

  4. 如果是在系統級的配置文件中,如/etc/profile中export 一個變數,那麼這個槐仔脊變數就會在整個系統運行期間都起作用。

  5. 如果在用戶級~/.bash_profile之類的文件中,則每次啟動shell都會去讀這個文件,所以每次打開shell也是可以取到這個值的。

  6. 如果在某一次運行戚老中,手動export一鉛滲個變數,則只在這次shell的使用中,才能訪問這個變數,或者在該shell啟動的其他程序中,也是可以訪問這個變數的,因為它們是這個shell的子進程。

閱讀全文

與linux腳本定義變數相關的資料

熱點內容
加密dns列表 瀏覽:988
股市操練大全八冊pdf 瀏覽:120
c傳遞指針到python 瀏覽:163
手動添加引導的命令 瀏覽:54
740伺服器小藍條是做什麼的 瀏覽:523
linux文件操作命令 瀏覽:127
安卓手機圖片文件夾加鎖 瀏覽:781
steam提示音在哪個文件夾 瀏覽:339
項目開發全程實錄pdf 瀏覽:532
單片機reset 瀏覽:597
pdf怎麼是英文 瀏覽:971
旗雲2壓縮機保險 瀏覽:374
做程序員壓力大嗎表情包 瀏覽:312
pdf下拉 瀏覽:373
php去掉小數後面的0 瀏覽:955
阿里備案買什麼伺服器 瀏覽:263
網路驅動下載到哪個文件夾 瀏覽:483
達內程序員培訓西安 瀏覽:507
人保送車主惠app上怎麼年檢 瀏覽:606
android手機開機密碼 瀏覽:482