當前位置:首頁 » 編程軟體 » 外部調用shell腳本內函數

外部調用shell腳本內函數

發布時間: 2025-01-09 04:49:14

Ⅰ shell腳本調用外部腳本的問題

估計是因為腳本1中使用了cd命令改變了當前路徑,腳本2中繼承了腳本1中的當前路徑;而一旦腳本1結束回到主shell,這個當前路徑也就不復存在。
如果在腳本2基於這個當前路徑啟動jar包前,腳本1結束了,那麼當前路徑肯定回到了主shell的設置去了,jar包就啟動不了了。
任何外部調用的shell命令執行都會產生一個進程,都會有一個pid,即使最終執行是返回錯誤。

所以,兩點建議:
1)腳本1調用2的命令行後加上 &,置入後台運行,這樣就不會因為腳本1的結束而影響腳本2的運行。
2)腳本中盡量不要用cd命令跳轉目錄,盡量使用絕對路徑。

Ⅱ 如何在shell中實現函數文件import,詳情入內

用自動導入函數的方法,可以在命令行下像執行命令一樣快捷,而且速度快,佔用資源少.
1,建立自己的函數庫
mkdir functionlib
然後將常用的腳本改成函數的語法,如:
function filename { command ; }
將filename拷貝到functionlib中,
2,修改環境文件,在/etc/profile中添加
export FPATH=$HOME/functionlib
3,重登錄一下
這樣的話,你就可以隨時用像ls那樣運行你自己的filename"命令"
而不需要用什麼dot,sh,來運行你的函數/腳本啦~~
如果在腳本中運行,可以在腳本頂部用
#!/bin/sh
##
autoload filename //來自動導入函數.
...
filename //調用函數

linux shell腳本:while循環中調用另一個腳本遇到exit為什麼會跳出循環,且繼續執行循環後的程序

exit是在被調用的腳本裡面,肯定會退出被調用的腳本了。如果不想繼續執行while循環後面的程序可以在do後面的條件上加上break

Ⅳ 如何復用外部shell腳本

在Linux開發中,常常需要編寫獨立的shell腳本執行特定任務。隨著任務增多,重復部分逐漸顯現,這時可以將公共功能提取到一個通用腳本中,以便其他腳本復用。本文將詳解如何在shell腳本中執行外部腳本、調用外部腳本的函數,並探討腳本復用的幾種方法。

首先,通過source命令或直接使用點號加腳本名的方式在另一個腳本(如b.sh)中調用外部腳本(如a.sh)。source會先執行a.sh,然後執行b.sh,而點號方式則直接執行,結果類似。sh外部腳本與前兩者在執行順序上有所不同,因為它在兩個獨立進程中運行。

接著,我們區分了source和點號調用的相同點,它們都讓外部腳本的全局變數和函數在當前腳本中生效。然而,sh方式由於在不同進程運行,無法直接使用外部腳本的函數和變數。

解決這一問題的方法包括使用case關鍵字匹配調用不同的函數,或者在外部腳本末尾添加參數判斷和參數傳遞的邏輯。前者需要添加分支對應每個新函數,後者則提供了一種通用的調用模板,但可能導致函數名變更時的維護問題。

總的來說,腳本復用提高了代碼的可維護性和可復用性,但需要注意不同調用方式的優缺點。在實際應用中,根據具體需求選擇合適的復用策略是很重要的。

熱點內容
輸入虛擬手機伺服器地址怎麼填 發布:2025-01-09 18:58:50 瀏覽:349
dede換資料庫 發布:2025-01-09 18:53:23 瀏覽:263
sql2000資料庫置疑修復 發布:2025-01-09 18:35:54 瀏覽:411
塊設備塊緩存 發布:2025-01-09 18:35:46 瀏覽:485
HED編譯 發布:2025-01-09 18:20:26 瀏覽:408
從安卓轉移設備從哪裡呢 發布:2025-01-09 18:12:31 瀏覽:557
為什麼半夜伺服器會炸 發布:2025-01-09 18:06:32 瀏覽:321
編譯器處理數據類型 發布:2025-01-09 18:06:29 瀏覽:946
狐狸視頻源碼 發布:2025-01-09 17:56:27 瀏覽:444
javaif或條件 發布:2025-01-09 17:51:22 瀏覽:296