-1
A
回答
0
bash
執行一個子shell腳本是不能修改的調用shell的環境,同時source
執行腳本在當前shell:
test.sh
#!/bin/sh
export MY_NAME=chucksmash
echo $MY_NAME
運行test.sh:
[email protected]:~$ bash test.sh
chucksmash
[email protected]:~$ echo $MY_NAME
[email protected]:~$ source test.sh
chucksmash
[email protected]:~$ echo $MY_NAME
chucksmash
[email protected]:~$
0
在bash,看起來像source script.sh
(或. script.sh
)在當前shell運行腳本的命令,不管#!
線的。
因此,如果你有一個腳本(在本例中名爲script.sh
):
#!/bin/bash
VALUE=1
cd /tmp
這將打印什麼(因爲VALUE
爲空),而不是改變你的目錄(因爲這些命令是在另一個實例執行的bash):
bash script.sh
echo $VALUE
這將打印1
,改變你的目錄/tmp
:
source script.sh
echo $VALUE
如果不是有這個腳本(在本例中名爲script.py
):
#!/usr/bin/env python
print 'Hello, world"
這將使一個奇怪的bash錯誤(因爲它試圖把它解釋爲一個bash腳本):
source shell.py
這也* *給一個奇怪的bash錯誤(因爲它試圖把它解釋爲一個bash腳本):
bash shell.py
這將打印Hello, world
:
./shell.py # assuming the execute bit it set
相關問題
- 1. 使用bash file.sh和./file.sh執行腳本的區別
- 2. bash腳本未能執行bash腳本
- 3. '執行'和'以腳本執行'之間的區別
- 4. 執行bash腳本
- 5. 執行bash腳本
- 6. 在bash腳本中使用「」和()的數組之間的區別?
- 7. 執行一個bash腳本並手動執行它有什麼區別嗎?
- 8. 「Source」和「Generated Source」有什麼區別?
- 9. 執行bash腳本,定義使用Python
- 10. CoffeeScript - 使用參數執行bash腳本
- 11. 使用bash腳本執行Python程序
- 12. 使用'at'來執行bash腳本
- 13. Bash腳本 - 執行語法
- 14. 叉執行和管道與bash腳本
- 15. 使用VBA腳本執行分區
- 16. bash腳本執行順序
- 17. bash腳本執行dig -x
- 18. 從php執行bash腳本
- 19. 在bash腳本中執行perl腳本
- 20. bash腳本和別名
- 21. 使用別名執行腳本
- 22. Bash腳本和行
- 23. 新的bash腳本;試圖弄清楚爲什麼SOURCE命令不會執行
- 24. 如何執行一個bash腳本,使用ssh和php
- 25. 使用單個bash腳本在diff目錄中執行多個bash腳本
- 26. Bash:使用點或「源」調用另一個腳本 - 有什麼區別?
- 27. Bash腳本:粘貼並執行一個外部bash腳本
- 28. 執行groovy腳本和詹金斯執行系統grovy腳本之間的區別?
- 29. bash腳本執行多個iptables鏈
- 30. Bash腳本 - 腳本內執行和grep命令
一個啓動一個新的shell,一個使用當前的shell? – Thilo