回答
從腳本的幫助按鈕: 運行一個用於構建項目的shell腳本(默認爲sh,但這是可配置的)。
如果你去管理詹金斯 - >配置系統,你會發現一個選項(稱爲「殼牌可執行文件」)的名稱或絕對路徑設置爲你希望你的shell腳本使用shell ...
對於我的系統沒有配置此選項...它使用bash!
我試圖通過將下面的shell命令添加到我的Jenkins版本來打印env。
env
輸出顯示SHELL被設置爲tcsh
我的實例。
$ SHELL是非常不可靠。嘗試: ps -p $$ –
我跑在Redhat詹金斯,詹金斯因爲不符合你必須添加一個默認的外殼安裝的用戶,當您在爲用戶詹金斯蘇 日誌 - 詹金斯-s /斌/慶典
簡單地聲明你的腳本的第一行的外殼,你在任何shell腳本文件做:
#!/bin/bash
這不起作用 使用的shell始終是啓動該進程的* nix用戶的默認外殼 – Janfy
這適用於我,使用最新版本的Jenkins截至2016/05。 –
@JohnMcGehee你使用的是什麼版本的jenkins? –
您可以設置使用詹金斯>默認的shell管理詹金斯>外殼可執行。
對於使用不同的外殼從默認的工作,開始執行shell構建步驟與家當,如:
#!/usr/bin/tcsh -e -x
command1
command2
...
你甚至可以使用/usr/bin/env
使用,也就是說,巨蟒:
#!/usr/bin/env python3
當心的是,#!
後的空間不允許:
#! /usr/bin/tcsh # Wrong
這會給該錯誤,
java.io.IOException: Cannot run program ""
我測試上述上詹金斯1.625.3
詹金斯默認查找sh
在PATH
環境變量,然而,結果(例如/bin/sh
)可能指向不同的殼。例如,在Ubuntu 6.10或更高版本中,/bin/sh
是Dash的符號鏈接。
因此,對於「Jenkins中使用什麼外殼......」這個問題,這取決於。爲了避免不確定,可以:(取擊作爲一個例子)
- 顯式配置殼可執行在管理詹金斯>配置系統>貝殼>貝殼可執行,例如,
/bin/bash
。(系統範圍的配置) - 使用家當行指定的解釋應該使用,例如,
#!/usr/bin/env bash
(具體到工作)
- 1. 觸發詹金斯與外殼
- 2. 瞭解有什麼區別詹金斯和Django的詹金斯
- 3. 使用詹金斯
- 4. 詹金斯標記爲成功即使外殼腳本失敗
- 5. 詹金斯殼不同服務器
- 6. 詹金斯殼會因設備
- 7. 詹金斯工作:無法從殼
- 8. git克隆不工作在詹金斯外殼腳本
- 9. 詹金斯管道外殼切割命令輸出重定向
- 10. 詹金斯 - 傳遞變量密碼外殼
- 11. 詹金斯不能訪問外殼別名
- 12. 無法從詹金斯的執行外殼ping谷歌
- 13. 詹金斯管道多行外殼與轉義字符
- 14. 重定向外殼輸出詹金斯到一個文件
- 15. 詹金斯內部版本號在電源外殼腳本
- 16. NOHUP沒有在詹金斯工作外殼
- 17. 詹金斯是代碼檢查員嗎?使用詹金斯但
- 18. 觸發使用詹金斯
- 19. 詹金斯使用REST API
- 20. 無法使用詹金斯
- 21. 詹金斯使用Groovy
- 22. 如何使用詹金斯
- 23. 爲什麼rsync的失敗,詹金斯
- 24. 對詹金斯
- 25. 與詹金斯
- 26. 在詹金斯
- 27. 詹金斯
- 28. 在詹金斯
- 29. 在詹金斯
- 30. 詹金斯 - j_acegi_security_check
嗯,我沒有看到當前版本的詹金斯:( – mdiehl13
我看到在CentOS 7.1上的jenkins 2.7.4的默認shell是bash(sh在OS上是bash),默認shell在Debian 8 docker容器上使用jenkins 2.32.1是破折號(在操作系統上是sh是破折號) – gaoithe