關於 Shell中函式的返回值 問題
sum()
{
echo $(($1+$2))
return $(($1-$2))
}
sum $1 $2
c=$(sum $1 $2)
echo $?
echo $c
執行命令:./bashTest 11 1
執行結果是:
12 —— sum $1 $2的結果
10 —— echo $?的結果,因為return的值為10
12 —— echo $c的結果,值為12,所以c並不會被附上return的值,echo $c時呼叫了sum函式,所以列印了12
我們對shell中的返回值的理解有偏差,shell中的返回值一般指命令執行後的返回值,一般是命令執行成功返回0,執行失敗返回1,命令執行後,可以用echo $?檢視返回值是多少,在本例子中,因為函式有return語句,則說明函式自己定義了一個返回值,可以通過echo $?檢視這個返回值,c=$(sum $1 $2)的值並不等於return的值,說明shell中並沒有像我們在C中定義函式時,如同c=abs(i,j)那樣的返回值呼叫。
有人說了這樣的話:
基本明白了,那意思是說shell裡的函式沒有像其他語言一樣將函式的返回值賦予給某個變數嗎?
如
c=sum_test $1 $2
echo $c 暱稱: hxl 時間: 2010-06-09 10:34:00 回覆 hxl
沒有。。。。 暱稱: lkk2003rty 時間: 2010-06-09 11:27:00 ################ 以上來自http://blog.163.com/[email protected]/blog/static/44780245201062865644141/################## 正確方法: function plus () {
read -p "input number1:" number1
read -p "input number2:" number2
#echo $(($number1+$number2)) #兩組括號的意思是做算術運算
echo `expr $number1 + $number2`
}
res=$(plus)
echo "plus result is $res"
使用echo , 用 res=$(plus) 呼叫和獲取
相關推薦
shell 中函式返回值的接收
shell中函式返回值接收主要有兩種方法。 方法一: 函式子程式的標準輸出賦值給主程式的變數。 ret=`function_name arg1 arg2 ...` 注意:不是引號。 例
C++中函式返回值的引用型別與非引用型別的區別
返回值為引用型別的函式某些情況下可作為表示式的左值,而非引用的則一般不可以。 函式返回值若為引用型別,當返回的是函式的引用形參時,則是對函式外的變數的引用,函式可以作為表示式的左值(被賦予新值)。 而當函式返回的是非引用型別時,返回的值是函式內隱式生成的
js中函式返回值return
全棧工程師開發手冊 (作者:欒鵬) 函式返回值 1、所有函式都有返回值,沒有return語句時,預設返回內容為undefined,和其他面向物件的程式語言一樣,return語句不會阻止f
關於 Shell中函式的返回值 問題
# !/bin/shsum(){ echo $(($1+$2)) return $(($1-$2))}sum $1 $2c=$(sum $1 $2) echo $?echo $c執行命令:./bashTest 11 1執行結果是:12 —— sum $1 $
Python函式中的變數和函式返回值
1.函式的變數 區域性變數和全域性變數: Python中的任何變數都有特定的作用域 在函式中定義的變數一般只能在該函式內部使用,這些只能在程式的特定部分使用的變數我們稱之為區域性變數 在一個檔案頂部定義的變數可以供檔案中的任何函式呼叫,這些可以為整個程式所使用的變數稱為全域性變數。
Linux Shell函式返回值
Shell函式返回值,一般有3種方式:return,argv,echo1) return 語句shell函式的返回值,可以和其他語言的返回值一樣,通過return語句返回。示例:#!/bin/bash -function mytest(){ echo "arg1 = $1
ORACLE隨機從表中取一條資料作為函式返回值
需求是這樣的:有一張經緯度表,需要從中隨機取一條資料插入另一張表作為其中的兩個欄位。插入過程在儲存過程中,所以需要函式返回值為經緯度資料物件。 首先,生成返回值物件POINT_OBJECT,包括經度緯度。 --生成經緯度 CREATE OR REPLACE TYPE POINT_OBJECT AS OB
詳解C語言和C++中的main()函式返回值
返回值main應指示程式如何退出。返回值為0表示正常退出main。異常退出通常通過非零返回來表示,但是關於非零程式碼沒有明確的標準。另外,void main()在C ++標準庫明確被禁止,不應該被使用。在C++中合法的main函式使用方法如下: int main() 以及: int
shell 函式返回值接收問題
shell中函式的呼叫方式有兩種,如下圖: 第一種方式,有點像C語言呼叫函式的風格,直接把函式的執行結果複製給變數!不過,這個賦值過程和C語言的函式賦值是不一樣的!shell中函式呼叫的第一種方式,是將標準輸出傳遞給主程式的變數,而不是返回值! 所以請看以下程式: #!
shell指令碼中接收返回值
/md05_sample //可執行程式 if [ $? -eq 1 ] //$? 為md05_sample的exit()或return 返回 then
Shell函式返回值
shell函式返回值一般有3種方式:return語句 shell函式的返回值可以和其他語言的返回值一樣,通過return語句返回。比如: #!/bin/bash - function mytest() { echo "mytest function" echo "a
js中一個函式獲取另一個函式返回值問題
//此種為非同步,還不等ajax賦完值,函式就return了。 function getCaseInfoForMap(){ var formInfo=$("#firstForm").serialize(); var dd; $.ajax({
Linux Shell指令碼程式設計--函式返回值
Shell函式返回值,常用的兩種方式:return,echo 1) return 語句shell函式的返回值,可以和其他語言的返回值一樣,通過return語句返回。示例: #!/bin/sh function test() { echo "arg1 =
sqlserver中編寫自定義函式中的返回值問題
寫了一個獲取符號間隔字串的函式,原先程式碼如下 CREATE FUNCTION funGetSubStr ( -- Add the parameters for the function here @StrParams nvarchar(4000), @char ch
C++中sting的rfind函式返回值
string中的find函式與rfind函式定義如下: int find(char c, int pos = 0) const;//從pos開始查詢字元c在當前字串的位置 int find(const char *s, int pos = 0) const;//從pos開始
shell 函式返回值
Shell函式返回值,常用的兩種方式:return,echo。 1、return 語句 該返回方法有數值的大小限制,超過255,就會從0開始計算,所以如果返回超過255,就不能用這種方式,建議採用ec
Linux Shell函式返回值 .
Shell函式返回值,一般有3種方式:return,argv,echo 1) return 語句 shell函式的返回值,可以和其他語言的返回值一樣,通過return語句返回。示例: [javascript] view plaincopyprint? #!/b
JS中new操作符與函式返回值return
預設情況 預設情況下函式的返回值為undefined(即沒有顯示地定義返回值的話),但是建構函式比較例外,new建構函式在沒有return的情況下預設返回新建立的物件。但是在有顯示返回值的情況下,如果返回值為基本資料型別的話(string,number,b
Linux system函式返回值(linux C++呼叫shell詳解)
階段2:呼叫/bin/sh拉起shell指令碼,如果拉起失敗或者shell未正常執行結束(參見備註1),原因值被寫入到status的低8~15位元位中。system的man中只說明瞭會寫了127這個值,但實測發現還會寫126等值。
【shell】獲取函式返回值的兩種方法
方法一: 使用全域性變數 g_result="" function testFunc() { g_result='local value' } testFunc echo $g_resu