如何確定腳本內部 - 它是從eshell還是從正常shell(bash等)執行?腳本的執行環境(eshell vs bash)
2
A
回答
0
只需添加(SETENV 「EMACS」, 「T」)到〜/的.emacs的父進程。所以這個行爲在所有的emacs shell中都是一樣的。
+1
當然,如果意圖是編寫一個便攜式腳本,而這個腳本恰好適用於在eshell下運行它的任何人,這將無濟於事。 – phils 2012-03-28 11:17:38
1
我最初被標記將此作爲How do I tell a shell that it is running from within Emacs?重複,但我認爲答案有硬傷的或過時的,因爲儘管它明確提到eshell
,似乎只適用於shell
和term
和ansi-term
。 eshell
必須是唯一一種你可以在Emacs中運行的shell,不會設置一個明顯的環境變量?
5
Eshell沒有設置任何特定的環境變量。您可以檢查$TERM
:它在Eshell下設置爲dumb
。
一個更精確的檢查會看劇本
if [ -t 1 ] && [ "$TERM" = "dumb" ] && [ "$(ps -o comm= -p $PPID)" = "emacs" ]; then
echo "This looks a lot like eshell"
fi
相關問題
- 1. 執行bash腳本
- 2. 執行bash腳本
- 3. 執行PHP腳本到Django環境?
- 4. 用bash腳本設置java ProcessBuilder環境
- 5. BASH腳本,環境變量和PID
- 6. bash腳本執行順序
- 7. bash腳本執行dig -x
- 8. 從php執行bash腳本
- 9. node - package.json:如何執行設置環境變量的腳本
- 10. 使用eshell腳本
- 11. Unix環境中的多線程/並行Bash腳本
- 12. 如何在Nant腳本中執行Teamcity中的環境變量(環境)
- 13. 在C++中執行shell命令時強制執行環境bash
- 14. bash腳本在多個docker-compose環境中運行測試
- 15. 如何從出口環境變量NPM腳本運行bash腳本
- 16. 從bash腳本執行python腳本時逃脫bash通配符?
- 17. 如何逐行執行bash腳本?
- 18. Bash腳本循環?
- 19. 從linux中的groovy執行bash腳本
- 20. 執行Node.js的文件中bash腳本
- 21. 執行Bash腳本需要的幫助
- 22. 離開while循環在Linux環境中的BASH腳本中執行下一個命令
- 23. 在bash外殼腳本執行循環內ssh命令
- 24. 從環境變量執行批處理腳本
- 25. 角量角器:在瀏覽器環境中執行腳本
- 26. PHP腳本執行和多線程環境(PHP5 Extension)
- 27. 帶有環境變量的bash腳本中的JRuby語句
- 28. bash腳本執行多個iptables鏈
- 29. bash腳本執行su命令
- 30. 在bash腳本中執行sed命令
可能值得爲此記錄一個錯誤報告('M-x report-emacs-bug'),因爲'eshell'應該將類似的環境變量添加到可用於其他Emacs shell選項的環境變量似乎是完全合理的。 – phils 2012-03-26 00:47:35