簡體   English   中英

無法在Cygwin中將Shell腳本作為KornShell腳本執行

[英]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是:

  • mksh MirdBSD KornShell
  • 打擊本恩再次殼
  • zsh z外殼

我應該在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

在Windows上通過Cygwin運行Shell腳本

通過以下過程將KornShell(ksh)安裝到Cygwin:

  1. 下載: ksh.2012-08-06.cygwin.i386.gz
  2. 通過Cygwin安裝程序安裝ksh。
    1. 示例Cygwin setup.exe
    2. 選擇: 從本地目錄安裝
    3. 選擇ksh.2012-08-06.cygwin.i386.gz作為本地軟件包目錄 在此處輸入圖片說明
    4. 完成Cygwin設置。
  3. 重新啟動Cygwin。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM