[問題] 關於makefile..

看板Linux作者 (非常念舊)時間10年前 (2013/12/22 10:27), 編輯推噓2(2013)
留言15則, 6人參與, 最新討論串1/1
我是職場菜鳥,linux新手,我想問假設我用Bernie帳號登入系統,那現在的位置 就是在我的家目錄底下,然後我編輯一個makefile內容如下: Setting: export YOUR_PATH=~/test cd ${YOUR_PATH} 結束 makefile編輯回到命令列並打上 [Bernie@localhost ~]$ make Setting 為啥[Bernie@localhost ~]不能變成[Bernie@localhost test]????? 那我該怎麼做才能達成這目的呢?感謝各位前輩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.155.200

12/22 10:38, , 1F
把 ~ 換成 $(HOME) 試試看
12/22 10:38, 1F

12/22 10:48, , 2F
把makefile的內容的~換掉嗎? 執行出來結果一樣~"~
12/22 10:48, 2F

12/22 11:09, , 3F
Makefile 裡面每一行指令都會在新的 shell 裡執行
12/22 11:09, 3F

12/22 11:10, , 4F
可以考慮改寫成 shell script 然後 source 進來
12/22 11:10, 4F

12/22 12:22, , 5F
樓上正解
12/22 12:22, 5F

12/22 14:06, , 6F
您說每一行指令在新的shell執行,意思是我的makefile裡
12/22 14:06, 6F

12/22 14:07, , 7F
目前有兩個shell+還為執行makefile的shell,共三個?
12/22 14:07, 7F

12/22 14:33, , 8F
make 啟動的 shell 只執行一行就結束了
12/22 14:33, 8F

12/22 14:34, , 9F
但是 export 和 cd 的目的都是要改現在的 shell 環境
12/22 14:34, 9F

12/22 14:35, , 10F
讓 make 啟動新的 shell 去執行這些東西是沒有效果的
12/22 14:35, 10F

12/22 18:13, , 11F
$()這括號裡面放的是指令 不要跟變數的樣式搞錯了
12/22 18:13, 11F

12/22 19:05, , 12F
make是在子進程實行 不影響shell的當前目錄
12/22 19:05, 12F

12/22 19:11, , 13F
恩 謝謝各位
12/22 19:11, 13F

12/23 11:00, , 14F
$() 在 shell script 裡面是執行指令
12/23 11:00, 14F

12/23 11:01, , 15F
但是 $() 在 Makefile 裡面是變數,${} 後來加上去的
12/23 11:01, 15F
文章代碼(AID): #1Ijau6KT (Linux)