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

By Genevieve
at 2014-01-20T11:06
at 2014-01-20T11:06
Table of Contents
您好:
簡單來說,前面的post已經有前輩已經回答使用source可以達到您要的目的。
小弟簡單說明一下背後的原因
執行script 預設的行為會fork一個新的shell 執行您的script,結束後會回到原本環境。
您可以想像從目前command line下執行下面3 個指令是類似的行為。
1. bash
2. cd /tmp
3. exit
* 確認方法1 (需要知道什麼是PID和PPID)
1. echo $$ #顯示目前shell PID
2. 寫一個script內容如下
#!/bin/sh
echo $$ # 顯示目前script使用的shell PID
ps -o pid,ppid $$ # 顯示目前script使用的shell PID和parent ID
3. 執行該shell,觀察1 和2的差別
* 確認方法2
1. 在您的script內 cd後再執行pwd觀察
因此您的行為在新的shell下已經正常執行了,想要讓script影響到目前shell
可以使用source如前所述。詳細情況可以man bash再搜尋source
另外如果您只是要使用script省去打[cd 一堆字串]的方法的話,alias 也是一個
可以參考的方式。
※ 引述《layumi (虔心向學)》之銘言:
: 不好意思 , 小弟是linux新手 , 最近想自己寫個簡單bash shell
: 目前執行的bash檔案在/home/123底下
: 想要執行bash檔案之後讓目錄變成 /home/456
[deleted]
--
簡單來說,前面的post已經有前輩已經回答使用source可以達到您要的目的。
小弟簡單說明一下背後的原因
執行script 預設的行為會fork一個新的shell 執行您的script,結束後會回到原本環境。
您可以想像從目前command line下執行下面3 個指令是類似的行為。
1. bash
2. cd /tmp
3. exit
* 確認方法1 (需要知道什麼是PID和PPID)
1. echo $$ #顯示目前shell PID
2. 寫一個script內容如下
#!/bin/sh
echo $$ # 顯示目前script使用的shell PID
ps -o pid,ppid $$ # 顯示目前script使用的shell PID和parent ID
3. 執行該shell,觀察1 和2的差別
* 確認方法2
1. 在您的script內 cd後再執行pwd觀察
因此您的行為在新的shell下已經正常執行了,想要讓script影響到目前shell
可以使用source如前所述。詳細情況可以man bash再搜尋source
另外如果您只是要使用script省去打[cd 一堆字串]的方法的話,alias 也是一個
可以參考的方式。
※ 引述《layumi (虔心向學)》之銘言:
: 不好意思 , 小弟是linux新手 , 最近想自己寫個簡單bash shell
: 目前執行的bash檔案在/home/123底下
: 想要執行bash檔案之後讓目錄變成 /home/456
[deleted]
--
Tags:
Linux
All Comments

By Christine
at 2014-01-24T23:34
at 2014-01-24T23:34
Related Posts
網樂通XBMC與遙控操作

By Lauren
at 2014-01-20T10:07
at 2014-01-20T10:07
請問在bash底下使用cd指令

By Freda
at 2014-01-20T02:47
at 2014-01-20T02:47
請問在bash底下使用cd指令

By Enid
at 2014-01-19T23:02
at 2014-01-19T23:02
請問在bash底下使用cd指令

By Ivy
at 2014-01-19T22:48
at 2014-01-19T22:48
kernel不支援的平台能使用嗎?

By Lucy
at 2014-01-19T19:10
at 2014-01-19T19:10