看板 Linux 關於我們 聯絡資訊
各位大大好 我有在網路上用一個關鍵字搜索 也在板內用"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
liwmewmew:我有找到 好像是用 . 這個來include 11/19 11:53
liwmewmew:但是我把lib跟main這兩隻script都放在同個資料夾 11/19 11:54
liwmewmew:然後 讓main裡面加上一句 . lib 11/19 11:54
liwmewmew:跑main,系統跟我說找不到lib 囧 不是會以main的資料夾 11/19 11:54
liwmewmew:利用相對路徑 直接去include到lib嗎? 11/19 11:55
jokester:.會在"執行main的資料夾"找, 不是"含有main的資料夾" 11/19 12:29
liwmewmew:對對 我已經把自己cd到main的資料夾了,然後輸入main.sh 11/19 12:30
liwmewmew:但是系統卻說找不到lib,但lib就在main的旁邊的說@@" 11/19 12:31
liwmewmew:而且這路徑問題,是否未來可能會出事阿? 謝謝 11/19 12:31
jokester:可以po在gist之類地方看一下嗎? 11/19 12:32
kdjf:main的資料夾不在$PATH裡,所以要用relative path => . ./lib 11/19 13:35
kdjf:又是一個bash 和posix sh 不一樣的地方 11/19 13:36
j大 我沒用過gist 不好意思 沒弄上來@@" 不過剛試一試 應該如k大說的那樣 我在main裡面 include那隻lib時 如果打這樣 . lib 會找不到lib 但是打 . ./lib 就可以找到了 即使我執行main之前 已經cd進到main的資料夾裡了(lib也在這個資料夾) 似乎依然必須打成 . ./lib 才找得到唉 我一直以為不打也會默認當前資料夾不是嗎? 謝謝 兩位 ※ 編輯: liwmewmew 來自: 61.222.86.79 (11/19 13:46)
jokester:! 我一直source絕對路徑所以沒發現這個區別 11/19 13:55
jokester:笨了orz 多謝指教 11/19 13:56
kdjf:unix現在都不把當前資料夾放在PATH裡了,以免動不動執行到毒 11/20 09:55