請問在bash底下使用cd指令 - Linux

Freda avatar
By Freda
at 2014-01-20T02:47

Table of Contents

※ 引述《layumi (虔心向學)》之銘言:
: 不好意思 , 小弟是linux新手 , 最近想自己寫個簡單bash shell
: 目前執行的bash檔案在/home/123底下
: 想要執行bash檔案之後讓目錄變成 /home/456
: 因此內容寫成
: #!/bin/bash
: cd /home/456
: 結果跑完之後路徑還是在 /home/123
: 請問我該怎麼讓目錄跑到/home/456呢 0.0?
: 先謝過 !!

講講觀念的東西...

直接在shell用"指令(enter)"
或 "sh 指令(enter)"
叫做fork-exec
這時你的shell就會fork一個child process (shell本身是parent process)
也就是產生一個新的PID
parent process會等待child process執行完成後再回到parent process
google到一張圖可以一目了然 http://ppt.cc/8GMw
(proc A就是parent process,proc B則是fork出來的child process
圖片右下那段話先不用理他,那是另一個故事)
這時你這個script是在child process內執行
執行完成後exit,回到parent process
這個script的結果在child process內就terminate了
所以你看不到結果,只看到shell原本的狀態

要避開fork-exec有兩個方法:
一種是推文和回文已經有版友提過的"source 指令(enter)"
另一種就是"exec 指令(enter)"
source是讓指令在原本process內執行(也就是你正在用的shell)
以你的問題來看,source應該是你要的
而exec也是讓指令在原本process內執行
(確切來說,是shell的process被取代為所執行的指令,沒有fork,直接被取代)
不同的是,執行結束後process本身會exit
也就是原本的shell也回不去惹

這是很基本的觀念並不難
希望我說那麼多不會讓你覺得很複雜

--
Tags: Linux

All Comments

Madame avatar
By Madame
at 2014-01-20T07:28
嗚~~你們都好強...
Olivia avatar
By Olivia
at 2014-01-20T20:49
推認真好文

kernel不支援的平台能使用嗎?

Lucy avatar
By Lucy
at 2014-01-19T19:10
我最近才開始把網樂通挖出來照前人的心血結晶改裝,但有點我不明白, STLINUX 2.3有支援網樂通板子pdk7105,而2.4版就不支援pdk7105了。 但是派樂靈丹TWPDA釋出的sh4twbox 0.9.2是stlinux 2.4,這樣不是 應該不能使用嗎?請問這是怎麼辦到的? -- 起初,他們追 ...

Red Hat開不了機

Xanthe avatar
By Xanthe
at 2014-01-19T17:39
今天重開伺服器結果無法開機 開機時讀條卡白色的畫面,而啟動程序卡在 Starting certmonger: [OK] 就不會動了,目前只能用root登入,其他使用者皆無法登入。 google找到方法說# mv /etc/X11/xorg.conf /etc/X11/old_xorg.conf 可以解 ...

用Wine執行LINE

Doris avatar
By Doris
at 2014-01-17T20:37
自己之前發過這篇... 現在要來說...問題都解決了XDDDDD ※ 引述《globalhawk (Cory)》之銘言: : 有鑑於這年頭LINE來勢洶洶地取代了MSN : 所以開始想辦法在Linux底下用Line : 官方原本給平板電腦用的網頁版收掉了 : Google一下發現可以用Wine : 就裝了 ...

用mac學linux..合嗎?

Ivy avatar
By Ivy
at 2014-01-17T01:59
我使用 Linux 三年多,除了非 Windows 不可的程式外, 所有事情包括桌面應用都是在 Linux 下完成。 主要使用的 distribution 為 Ubuntu, 用過的 DE 有 LXDE, XFCE, KDE, GNOME, Unity, 用 Ubuntu Server Edition, ...

firefox選單點不出來

Agnes avatar
By Agnes
at 2014-01-17T00:18
借這篇文來發問 小弟最近初入Linux世界,發行版是Linux Mint 16 MATE 輸入法平台是gcin 在使用firefox時遇到跟這篇一樣的問題 只要瀏覽器開一些分頁、用一段時間後,點書籤、工具列和右鍵就會沒反應 目前還沒歸納出這個情形出現的徵兆 有時候要關掉瀏覽器重開才會好,有時候不用重開自動又有 ...