㈠ shell怎麼輸出一個變數的值
如果文件中只有一個內容, a=`cat file` //將內容賦值給a 如果文件中有很多內容,那麼你需要用for循環或者是while來挨個讀取文件中的內容
㈡ 在shell編程中可以使用哪四種類型的變數
一、shell有兩類變數:
1、臨時變數
2、永久變數
二、兩種特殊的變數
1、位置變數
2、特殊變數
㈢ shell腳本變數的定義與賦值
定義變數
Shell 支持以下三種定義變數的方式:
variable=value
variable='value'
variable="value"
variable 是變數名,value 是賦給變數的值。如果 value 不包含任何空白符(例如空格、Tab 縮進等),那麼可以不使用引號;如果 value 包含了空白符,那麼就必須使用引號包圍起來。使用單引號和使用雙引號也是有區別的,稍後我們會詳細說明。
注意,賦值號=的周圍不能有空格,這可能和你熟悉的大部分編程語言都不一樣。
Shell 變數的命名規范和大部分編程語言都一樣:
變數名由數字、字母、下劃線組成;
必須以字母或者下劃線開頭;
不能使用 Shell 里的關鍵字(通過 help 命令可以查看保留關鍵字)。
變數定義舉例:
url=http://c.biancheng.net/shell/
echo $url
name='C語言中文網'
echo $name
author="嚴長生"
echo $author
使用變數
使用一個定義過的變數,只要在變數名前面加美元符號$即可,如:
author="嚴長生"
echo $author
echo ${author}
變數名外面的花括弧{ }是可選的,加不加都行,加花括弧是為了幫助解釋器識別變數的邊界,比如下面這種情況:
skill="Java"
echo "I am good at ${skill}Script"
如果不給 skill 變數加花括弧,寫成echo "I am good at $skillScript",解釋器就會把 $skillScript 當成一個變數(其值為空),代碼執行結果就不是我們期望的樣子了。
推薦給所有變數加上花括弧{ },這是個良好的編程習慣。
修改變數的值
已定義的變數,可以被重新賦值,如:
純文本復制
url="http://c.biancheng.net"
echo ${url}
url="http://c.biancheng.net/shell/"
echo ${url}
第二次對變數賦值時不能在變數名前加$,只有在使用變數時才能加$。
㈣ linux下的Shell編程變數是怎樣定義的...
shell變數比C語言中的變數簡單得多,沒有眾多存儲類及類型的限制,也不需要預先定義,然後才能賦值,可以在使用時"現在定義,現賦值".
shell有兩種變數:環境變數和臨時變數.環境變數是永久性變數,其值不會隨shell腳本執行結束面消失.而臨時變數是在shell程序內部定義的,其使用范圍公限於定義它的程序,離開了本程序就不能再用,它而且當程序執行完畢,它的值也就不存在了.
㈤ 編寫一個shell腳本輸出$HOME,$0,$#,$$變數的值
直接在命令窗口輸入:echo $HOME即可呀。
#!/bin/sh。
echo $HOME #當前用戶的家目錄。
echo $0 #調用程序第0個參數。
echo $# #忘記了。
echo $$ #列印父進程進程id。
(5)shell編程變數的值擴展閱讀:
shell腳本:
打開文本編輯器(可以使用vi/vim命令來創建文件),新建一個文件test.sh,擴展名為sh(sh代表shell),擴展名並不影響腳本執行,見名知意就好,如果你用php寫shell 腳本,擴展名就用php好了。
輸入一些代碼,第一行一般是這樣:
#!/bin/bashecho"HelloWorld!"
"#!" 是一個約定的標記,告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種Shell。echo命令用於向窗口輸出文本。
㈥ 在shell腳本中將變數的值作為命令行參數傳給程序
fun(){
echo "$1"
}
fun "abc"
$1就代表了你傳進去的第一個參數,$2當然就是第二個參數,fun就是你定義的函數名,後面的「abc」就是實參,即你說的變數,運行之後就會顯示abc
㈦ shell 下幾種常見的變數賦值方法
shell下變數的賦值方法一般是 variable=variable_value,但是在實際運用過程中,variable_value可以有多種方法具體如下:
variable=`command argument` 幾個典型的例子:
用awk或者是cut 把指定的欄位(用一定的分隔符分隔的欄位)賦值給某個變數 variable=`awk '{print $n}' filename` 用cut也能實現類似的辦法
用awk的substr函數把指定欄位的某幾個字元賦值給variable,看下邊的例子: ifconfig |grep "inet addr" |awk '{print substr($2,6)}'
用for函數把指定范圍的值賦值給變數 for i in `cat file.txt` do do sth here done 用代碼塊重定向: while read line do do sth here done < filename
代碼塊重定向:一次讀取一行,文件中的欄位如果用空格分開那麼用代碼塊重定向處理後各個變數也用空格分開
㈧ shell編程,變數賦值問題
./表示執行當前目錄下某個可執行文件,這個文件不一定是bash腳本,但是sh方式就只能執行shell腳本,如果一個二進制可執行程序你用sh ./binExample這種方式執行,會報錯的。
㈨ shell變數的值做為另一個變數
i=0;a=$i;echo$a
㈩ Linux下的Shell編程變數是怎樣定義的
linux shell變數的定義一般格式
變數名=變數值。
比如var=123
var=hello
var="hello world"
這些都是可以的,但是變數名第一個字元不能是數字,可以是下劃線或者字母。
另外=兩邊不可以有空格。