linuxshell函數
㈠ linux shell 自定義加法函數 急求
$?是返回最近一條命令的返回值,echo $total,$?的意思是返回echo $total的返回值,這里肯定是成功返回,自然是0了,如果需要fSum返回值,那麼需要在fSum命令後直接$?即可.
subShellInfo=$(fSum 3 2)
total=$?
echo $total,$?
那麼就顯示5 0
其中subShellInfo是子進程中所有輸出信息,第一個$?是子進程返回值
㈡ linux 的shell怎麼得到函數返回值
函數的返回值實際上就是函數的退出狀態
yes_or_no Kitty
i=$?
就可以了。
$? 代表上一條指令的退出狀態。
怎樣使用if語句就隨便你了。
㈢ linux shell函數返回值的問題
yes_or_no "$1"
temp=$?
㈣ linux 腳本怎麼定義子shell能用的函數
看如下示例,可以實現把函數傳遞到子shell中,子shell在linux腳本中使用()實現,即在()中的代碼會在子shell中執行,代碼如下:
#!/bin/bash
#Scriptname:do_square
functionsquare{
localsq#sqislocaltothefunction
let"sq=$1*$1"
echo"Numbertobesquaredis$1."
echo"Theresultis$sq"
}
echo"Givemeanumbertosquare."
readnumber
value_returned=$(square$number)#子shell
echo"$value_returned"
執行效果如下:
㈤ Linux Shell函數有哪幾種使用方法
bash和ksh,都可以使用一下方式定義函數。只需要簡單的調用函數名, 函數就會被調用或觸發。
function function_name {
command...
}
或
function_name () {
command...
}
㈥ linux系統調用 shell命令 c庫函數怎麼區分
首先,命令應該是好和其他兩個區分開來的了,因為命令都是可以直接敲在shell上面回車執行的,而系統調用和庫函數都不行;
其次,Linux系統調用和C庫函數都是函數的形式,即都是「func(args)」的形式,但系統調用是
由系統內核對外提供的服務介面;C庫函數和你自己寫的普通的函數沒有本質的區別,只是在C標准庫中而已,Linux上面glibc就是C函數庫。從表面上看兩者不太好區分,不過,你可以從它們需要包含的頭文件來區分,C庫函數像printf在
中,std就是標准(standard)的縮寫形式,因此在
中的函數,基本都是C庫函數;像
ssize_t
read(int
fd,
void
*buf,
size_t
count);這樣很多的系統調用是包含在
中的,unistd意思是UNIX
Standard,從這個意義就可以區分了。
希望對你有所幫助,如還有問題,可隨時聯系我:-)
㈦ linux下的 shell到底是什麼啊
在計算機科學中,是指「提供用戶使用界面」的軟體,通常指的是命令行界面的解析器。一般來說,shell是指操作系統中,提供訪問內核所提供之服務的程序。
㈧ linux下的shell是什麼
什麼是shell
shell是用戶和Linux
操作系統
之間的
介面
。Linux中有多種shell,其中預設使用的是Bash。本章講述了shell的工作原理,shell的種類,shell的一般操作及Bash的
特性
。
什麼是shell
Linux系統的shell作為操作系統的
外殼
,為用戶提供使用操作系統的介面。它是
命令語言
、命令
解釋程序
及
程序設計語言
的統稱。
shell是用戶和
Linux內核
之間的介面
程序
,如果把Linux內核想像成一個
球體
的中心,shell就是圍繞
內核
的外層。當從shell或其他程序向Linux傳遞命令時,內核會做出相應的反應。
shell是一個命令語言
解釋器
,它擁有自己內建的shell命令集,shell也能被系統中其他
應用程序
所調用。用戶在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。
Shell是一種具備
特殊功能
的程序,
它是介於使用者和
UNIX/linux
操作系統之核心
程序(kernel)間的一個介面。為什麼我們說
shell
是一種介於系統核心程序與使用者
間的中介者呢?讀過操作系統概論的讀者們都知道操作系統是一個
系統資源
的管理者與分
配者,當您有需求時,您得向系統提出;從操作系統的角度來看,它也必須防止使用者因
為錯誤的操作而造成系統的傷害?眾所周知,對
計算機
下命令得透過命令(command)
或
是程序(program);程序有編譯器(compiler)將程序轉為
二進制代碼
,可是命令呢?
其實shell
也是一支程序,它由
輸入設備
讀取命令,再將其轉為計算機可以了解的機械碼,
然後執行它。
各種操作系統都有它自己的
shell,以
DOS
為例,它的
shell
就是
command.com文
件。如同
DOS
下有
NDOS,4DOS,DRDOS
等不同的命令解譯程序可以取代標準的
command.com
,UNIX
下除了
Bourne
shell(/bin/sh)
外還有
C
shell(/bin/csh)、
Korn
shell(/bin/ksh)、Bourne
again
shell(/bin/bash)、Tenex
C
shell(tcsh)
等其它的
shell。UNIX/linux將
shell
獨立於核心程序之外,
使得它就如同一般的應用
程序,
可以在不影響操作系統本身的情況下進行修改、更新版本或是添加新的功能。
有一些命令,比如改變工作目錄命令cd,是包含在shell
內部
的。還有一些命令,例如
拷貝
命令cp和移動命令rm,是存在於
文件系統
中某個目錄下的單獨的程序。對用戶而言,不必關心一個命令是建立在shell內部還是一個單獨的程序。
shell首先檢查命令是否是
內部命令
,若不是再檢查是否是一個應用程序(這里的應用程序可以是Linux本身的
實用程序
,如ls和rm,也可以是購買的商業程序,如xv,或者是
自由軟體
,如emacs)。然後shell在搜索
路徑
里尋找這些應用程序(搜索路徑就是一個能找到可執行程序的目錄列表)。如果鍵入的命令不是一個內部命令並且在路徑里沒有找到這個
可執行文件
,將會顯示一條錯誤信息。如果能夠成功找到命令,該內部命令或應用程序將被分解為
系統調用
並傳給Linux內核。
shell的另一個重要特性是它自身就是一個解釋型的程序設計語言,shell程序設計語言支持絕大多數在
高級語言
中能見到的程序
元素
,如
函數
、
變數
、
數組
和程序控制結構。shell
編程語言
簡單易學,任何在提示符中能鍵入的命令都能放到一個可執行的shell程序中。
當普通用戶成功登錄,系統將執行一個稱為shell的程序。正是shell進程提供了命令行提示符。作為默認值(TurboLinux系統默認的shell是BASH),對普通用戶用「$」作提示符,對超級用戶(root)用「#」作提示符。
一旦出現了shell提示符,就可以鍵入
命令名稱
及命令所需要的
參數
。shell將執行這些命令。如果一條命令花費了很長的時間來運行,或者在屏幕上產生了大量的輸出,可以從
鍵盤
上按ctrl+c發出中斷
信號
來中斷它(在正常結束之前,中止它的執行)。
當用戶准備結束登錄對話進程時,可以鍵入logout命令、exit命令或文件結束符(EOF)(按ctrl+d實現),結束登錄。
㈨ linux shell編程裡面的函數是不是沒有參數
函數沒有參數那還叫函數嗎? shell 中定義一個函數是不需要說明參數的,使用的時候可以給它參數,多少都可以,在函數中,引用參數,$1,$2,就是第一個參數,第二個參數的意思。
比如:
..
function han
{
echo $1
}
han "hello world!"
..
在shell 執行後,會顯示 hello world!