linux腳本函數
㈠ 在linux 用shell腳本調用c語言的執行文件,用到什麼函數,求大神幫分析一下
c調用shell為system(cmd)
shell調用c執行文件和調用普通的命令一樣,如 ls cd pwd等命令都是c寫的執行文件
㈡ 完成函數與腳本的編寫 Linux編程
#!制/bin/bashsum(){ total=0 for num in `seq $1 $2` do let total+=num done echo $total} read -p "Input number1: " num1read -p "Input number2: " num2if [ $num1 -ge $num2 ]; then echo "Wrong number!" exit 1fisum $num1 $num2exit 0
㈢ 如何寫一個shell腳本在Linux下來運行main函數
這要看你的main函數是什麼語言的了,如果是shell裡面的函數,可以這么寫:
main() {
echo "1234567"
)
echo "start"
main
echo "end"
exit 0
如果是其他語言,那你可以直接調用編譯後的可執行程序:
echo "start"
main
echo "end"
如果有入參,可以在main後面直接寫,用空格分割
那就好說了,首先你得在linux安裝JDK,然後把java_HOME、CLASSPATH和PATH這幾個環境變數設置好,然後把上面的main換成
java 程序,這個程序需要是javac後的
㈣ Linux system 函數
最近工作中在 Linux 下,某些指定的程序需要調用指定的 shell 腳本完成指定工作,以前也曾經做過類似的功能,調用 system 函數執行指定的腳本,以前並不關心 shell 腳本是否執行成功了,現在的功能需要根據 shell 腳本執行成功與否,於是查詢了下 system 函數的說明,有此文以做筆記之用。
功能:調用/bin/sh -c 執行指定的腳本 command
常規使用方法:
關於返回值:
答案是 都錯
man手冊
看著挺暈的,但是如果對於 system 的執行過程了解的話,就很容易理解了,函數執行分為以下幾個階段。
階段1:創建子進程等准備工作。如果失敗,返回-1
階段2:調用 /bin/sh 拉起腳本,如果拉起失敗或者shell未正常執行,原因值被寫入ret中
階段3:如果 shell 腳本執行成功, shell 腳本的返回值寫入ret中
從上面可知,不管 shell 腳本返回什麼值,只要調用了/bin/sh,並且執行過程沒有被信號中斷,都算正常結束。因為腳本是在子進程中執行的,所以要想獲取腳本是否執行成功的方法只能用系統提供的兩個宏。
由於我們一般在 shell 中會通過返回值判斷腳本是否執行成功,成功返回0,成功返回整數。所以判斷一個腳本是否執行成功,應該滿足三個條件:
注意:當 shell 腳本不存在時、沒有執行條件等,前兩個條件也會成立,此時WEXITSTATUS(ret)為127,所以shell腳本中不能將127作為返回值,shell腳本中的異常返回值最好從1開始遞增,成功返回0。
system 用起來,看則簡單,實則不那麼簡單,有很多隱藏的坑,需要自己深入理解原理,才能更好地使用,也可以用其他實現方式完成相同的功能。
最後對自己說,多寫,多思,多總結
㈤ 每天三分鍾搞定linux shell腳本26 函數返回值
函數可以產生返回值,有3個方法。
1)默認情況下是 最後一條語句對應的退出狀態碼
2) return 一個整數值
3)使用 echo語句 指定輸出
針對 方法1 建立如下腳本:
運行後輸出結果為:
針對 方法2 建立腳本:
運行後結果為:
針對 方法3 建立腳本
運行後輸出結果為:
方法3使用echo語句來返回結果,而且 並沒有把這個輸出到stdout 中。
函數返回數組與參數傳遞數組一樣,使用echo語句。舉例如下:
運行後輸出結果為:
㈥ 在linux中怎麼運行腳本函數
1、同一腳本文件中的函數:
#!/bin/sh
function func1()
{
echo $1
}
func1 "Hello world!"
2、其它腳本文件中的函數:
func.sh文件內容如下(其中定義了函數func1,需要1個參數):
#!/bin/sh
function func1()
{
echo $1
}
主程序腳本:
#!/bin/sh
. func.sh
func1 "Hello world!"
㈦ 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腳本中怎樣在一個文件中調用另一個文件定義的函數
source myFile文件路徑
或者
. myFilw文件路徑
㈨ linux中的if函數怎麼用啊
題主你好,
我這邊把你的代碼敲了一遍, 沒有出現你說的情況.
測試所用代碼:
寫在最後: 題主把你那邊所用的系統以及代碼運行截圖發過來,我看一下.
另外關於shell語法這東西,熟悉了也就好了,你之所以會生氣是因為剛接觸shell,怎麼調都不和你心意,後期基本的語法都玩熟了,也就沒這種想法了。c語言其實也一樣,如果沒人告訴你語法,而是你自己去猜測,去試,碰一鼻子灰的時候也是現在寫shell時的心態.
另外當你熟悉了一門語言後,再去接觸其它語言,尤其是語法差異較大的語言,就會覺得很別扭,都是先入為主的思想弄的,反過來想,如果你一開始接觸的是shell,可能現在就會覺得c很別扭。你現在可能覺得不是這樣的,那是因為你現在會c語言.
所以我想說的是不管是啥語言,不管設計樣,既然要用它,就靜下心來,盤它就對了:)
=====
希望可以幫到題主, 歡迎追問.
㈩ 在linux下shell腳本中if中用到or怎麼寫
linux下shell腳本的邏輯的or用運算符 || 表示,if中用到or的寫法實例如下:
a=10
b=20
if[[$a-lt 50||$b-gt 50]]
then
echo"返回 true"
else
echo"返回 false"
fi
其中$a-lt100表示a<50 為真;$b-gt 50 表示b>50為假;真 or 假為真。
所以輸出結果為:返回 true
(10)linux腳本函數擴展閱讀
1、shell中流程式控制制if基本語法介紹:
if condition
then
command1
command2 ...
commandN
fi
2、shell中的另一個邏輯運算符and (&&)用法實例介紹:
a=10
b=20
if[[$a-lt100&&$b-gt100]]
then
echo"返回 true"
else
echo"返回 false"
fi
輸出結果為:返回 false