2016-03-16 88 views
0

想要從任何單個腳本執行以下命令。這個怎麼做?安裝bash shell或命令提示符以運行Python項目

每當我開始我的膩子會話,在我的unix機器上,bash shell即將到來,那麼我需要輸入以下命令來設置我的工作區。

下面是我正在做的確切程序。

-bash-4.2$ bash 
    [[email protected] ~]$ su 

getting admin rights 
    [[email protected] userName]# 

setting up environment variable for python project 
    [[email protected] userName]# source xxxx.env 

setting the path for my local workspace 
    [[email protected] userName]# setxxxx /home/userName/SourceCode/ 

現在,我希望所有這些命令從單個腳本執行。 因此,我將所有這些命令放到一個shell腳本中,並試圖執行,但只有第一條指令得到執行。 爲什麼?

start.sh 

    #!/bin/bash 
    bash 
    su 
    source ssdt.env 
    setssdt /home/userName/projectName/ 
+3

因爲su創建了新的shell,試着將腳本的第一行改爲'#!/ bin/su -c/bin/bash'並從腳本主體中刪除'su' –

+1

爲什麼不直接運行'su -c'source ssdt.env && setssdt/home/adubey/Test_Tip /''? – heemayl

+0

如果你必須在腳本中封裝'su'而不是從外部調用'su',那麼可以考慮用'sudo'來代替每個命令。而且,正如其他人所說,從腳本中刪除'bash'和'su',因爲它們都會調用一個新的shell。 – paddy

回答

0

在腳本中的第一個命令是bash,這將打開一個新的外殼,將運行它,直到你離開之前,它將繼續在腳本執行其他命令。如果你只是想用bash來執行腳本,那就是#!在頂部的行呢。 su命令還將打開一個子shell,在其他命令以普通權限運行之前,子shell將不得不退出。