看板 Linux 關於我們 聯絡資訊
我是職場菜鳥,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
fourdollars:把 ~ 換成 $(HOME) 試試看 12/22 10:38
gn00618777:把makefile的內容的~換掉嗎? 執行出來結果一樣~"~ 12/22 10:48
lantw44:Makefile 裡面每一行指令都會在新的 shell 裡執行 12/22 11:09
lantw44:可以考慮改寫成 shell script 然後 source 進來 12/22 11:10
danielsig727:樓上正解 12/22 12:22
gn00618777:您說每一行指令在新的shell執行,意思是我的makefile裡 12/22 14:06
gn00618777:目前有兩個shell+還為執行makefile的shell,共三個? 12/22 14:07
lantw44:make 啟動的 shell 只執行一行就結束了 12/22 14:33
lantw44:但是 export 和 cd 的目的都是要改現在的 shell 環境 12/22 14:34
lantw44:讓 make 啟動新的 shell 去執行這些東西是沒有效果的 12/22 14:35
Microscft:$()這括號裡面放的是指令 不要跟變數的樣式搞錯了 12/22 18:13
jokester:make是在子進程實行 不影響shell的當前目錄 12/22 19:05
gn00618777:恩 謝謝各位 12/22 19:11
fourdollars:$() 在 shell script 裡面是執行指令 12/23 11:00
fourdollars:但是 $() 在 Makefile 裡面是變數,${} 後來加上去的 12/23 11:01