[英]Unable to execute shell script in Cygwin as a KornShell script
我很少接觸Shell腳本,我們有另一個部門來編寫它們,所以我對編寫它們有一定的了解,但是沒有經驗。 但是它們對我的問題似乎都沒用。
我正在嘗試使用Cygwin在基於Windows的計算機上執行一些KornShell(ksh)腳本-我們使用它們來啟動Oracle WebLogic服務器,現在根本無法執行。 我曾經能夠在舊計算機上很好地執行這些完全相同的腳本。
現在,我將其范圍縮小為以下事實:“幻數”或指定腳本解釋器路徑的腳本開始處的數字:
即:
#!/bin/ksh
如果我將其更改為作為簡單的bash執行,則可以正常工作,即:
#!/bin/sh
我檢查了為cygwin安裝的軟件包-現在安裝的shell是:
我應該在cygwin / bin目錄中看到ksh.exe嗎? 有一個系統文件“ ksh”,我以某種方式將其與其他外殼程序exe之一相關聯,例如mksh.exe
我了解我的解釋很可能會引起誤解。 但是話雖如此,任何幫助將不勝感激。
謝謝。
我相信MirBSD的已知外殼稱為mksh
。 您可以驗證這一點並通過鍵入以下內容查找正確的路徑
% which mksh
% which ksh
或者如果你沒有which
,
% type -p mksh
% type -p ksh
或如果同樣失敗,請檢查/etc/shells
,它應該列出系統上所有有效的shell:
% grep ksh /etc/shells
您需要在#!
后面加上完整路徑#!
線。 它可能是/bin/mksh
,所以您的行需要看起來像:
#!/bin/mksh
您可能已經修復了它,但是答案是否定的,您的Cygwin還不知道ksh。
我通過使用-P ksh屬性在命令行模式下啟動cygwin安裝程序解決了此問題(如http://www.ehow.com/how_8611406_install-ksh-cygwin.html中所述 )。
您可以使用bat文件運行ksh
C:\\ cygwin \\ bin \\ dos2unix kshfilename.ksh
C:\\ cygwin \\ bin \\ bash kshfilename.ksh
通過以下過程將KornShell(ksh)安裝到Cygwin:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.