執行shell指令碼進入指定目錄

2021-08-14 21:27:14 字數 668 閱讀 5321

在linux環境下,常有通過shell指令碼進入指定目錄的操作,例如有一段指令碼chdir.sh:    

[plain]view plain

copy

#!/bin/sh  

cd /home/user/downloads  

pwd  

在shell環境下通過./chdir.sh執行這段指令碼是無法進入downloads目錄的; 這是因為shell在執行指令碼時,會建立乙個子shell,並在子shell中逐個執行指令碼中的指令; 而子shell中從父shell中繼承了環境變數,但是執行後不會改變父shell的環境變數;如果想要**中切換目錄的操作生效,只需要通過source 命令執行即可:

[plain]view plain

copy

source ./chdir.sh   

source 命令是在當前的shell環境下執行指令碼 ,不會建立子shell; 

每次都要輸入source是一件煩瑣的事情,其實source命令又叫點命令,在需要用到source的情況下,直接換成'.'即可: 

[plain]view plain

copy

. ./chdir.sh  

注意兩點之間的空格。

執行shell指令碼進入指定目錄

在linux環境下,常有通過shell指令碼進入指定目錄的操作,例如有一段指令碼chdir.sh plain view plain copy bin sh cd home user downloads pwd 在shell環境下通過.chdir.sh執行這段指令碼是無法進入downloads目錄的 ...

執行shell指令碼進入指定目錄

在linux環境下,常有通過shell指令碼進入指定目錄的操作,例如有一段指令碼 text.sh bin sh cd learn pwdls l在shell環境下通過.text.sh執行這段指令碼是無法進入learn目錄的 這是因為shell在執行指令碼時,會建立乙個子shell,並在子shell中...

shell指令碼,指定使用者執行shell命令

系統環境 centos7 如root使用者下,實現用elk使用者啟動es,如下 bin bash su elk eofecho start elasticsearch.nohup sh data elasticsearch bin elasticsearch echo start kibana.no...