[問題] 純function的script,給其他script使用

看板Linux作者 (如果大海能夠)時間12年前 (2013/11/19 11:46), 編輯推噓1(1014)
留言15則, 3人參與, 最新討論串1/1
各位大大好 我有在網路上用一個關鍵字搜索 也在板內用"script"再配合"fun"或"函式"搜索 但是都沒找到 最近在一些script 其中有些function將近出現在我每一隻script裡 例如print_log之類 在想 1. 我應該寫一隻專門擺共用function的script 然後大家都可以直接使用這隻script裡面提供的多隻function 甚至也可以共用參數(唯讀的,例如指定log要寫進哪隻檔案這樣) 有點像MAKE FILE可以include其他宣告更多path與case的file的方式 2. 把每一隻想一再被其他script的function直接包成一隻script 大家就直接呼叫這隻script這樣 雖然沒仔細分析以上兩者之間的好壞 但 我比較想實現第1種方式 感覺就可以一隻檔案整理起來 但我目前找不到辦法去達到第1種方式 不知道有沒有大大可以指引一下 真的非常感謝 -- 有種熟悉總在你心裡深處、眼光餘角出現 越是追求越是千里尋不著 日覆一日,漸漸的也就淡忘 實際卻如影隨行、無聲無息的埋藏在潛意識裡‧‧‧ 也許夜深人靜時又會不經意的輕敲你心房 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.86.79

11/19 11:53, , 1F
我有找到 好像是用 . 這個來include
11/19 11:53, 1F

11/19 11:54, , 2F
但是我把lib跟main這兩隻script都放在同個資料夾
11/19 11:54, 2F

11/19 11:54, , 3F
然後 讓main裡面加上一句 . lib
11/19 11:54, 3F

11/19 11:54, , 4F
跑main,系統跟我說找不到lib 囧 不是會以main的資料夾
11/19 11:54, 4F

11/19 11:55, , 5F
利用相對路徑 直接去include到lib嗎?
11/19 11:55, 5F

11/19 12:29, , 6F
.會在"執行main的資料夾"找, 不是"含有main的資料夾"
11/19 12:29, 6F

11/19 12:30, , 7F
對對 我已經把自己cd到main的資料夾了,然後輸入main.sh
11/19 12:30, 7F

11/19 12:31, , 8F
但是系統卻說找不到lib,但lib就在main的旁邊的說@@"
11/19 12:31, 8F

11/19 12:31, , 9F
而且這路徑問題,是否未來可能會出事阿? 謝謝
11/19 12:31, 9F

11/19 12:32, , 10F
可以po在gist之類地方看一下嗎?
11/19 12:32, 10F

11/19 13:35, , 11F
main的資料夾不在$PATH裡,所以要用relative path => . ./lib
11/19 13:35, 11F

11/19 13:36, , 12F
又是一個bash 和posix sh 不一樣的地方
11/19 13:36, 12F
j大 我沒用過gist 不好意思 沒弄上來@@" 不過剛試一試 應該如k大說的那樣 我在main裡面 include那隻lib時 如果打這樣 . lib 會找不到lib 但是打 . ./lib 就可以找到了 即使我執行main之前 已經cd進到main的資料夾裡了(lib也在這個資料夾) 似乎依然必須打成 . ./lib 才找得到唉 我一直以為不打也會默認當前資料夾不是嗎? 謝謝 兩位 ※ 編輯: liwmewmew 來自: 61.222.86.79 (11/19 13:46)

11/19 13:55, , 13F
! 我一直source絕對路徑所以沒發現這個區別
11/19 13:55, 13F

11/19 13:56, , 14F
笨了orz 多謝指教
11/19 13:56, 14F

11/20 09:55, , 15F
unix現在都不把當前資料夾放在PATH裡了,以免動不動執行到毒
11/20 09:55, 15F
文章代碼(AID): #1IYjyffx (Linux)
文章代碼(AID): #1IYjyffx (Linux)