Словарь для преобразования кода powershell (.ps1) в bash (. sh) - PullRequest
0 голосов
/ 03 мая 2020

Я создал код .ps1, целью которого было быстрое выполнение файлов java в одной строке. У меня есть это в коде powershell (.ps1), но я хочу преобразовать его в bash код (. sh), который может работать как на OSX, так и на Linux (у меня, к сожалению, нет linux или unix машины под рукой, чтобы проверить это, и я знаю, что это далеко от идеала).

Мой код:

# This whole IF/ELSE is used to make sure jrun.ps1 runs to the right path. 
$originalPath="Nah"
if ($args[0] -eq '--path') { 
    $path=$args[1]
    $name=$args[2]
    $originalPath=Get-Location

    $argstopass=$args[3..($args.Count-1)]

    Set-Location $path
} elseif ($args[0] -eq '-p') { 
    $path=$args[1]
    $name=$args[2]
    $originalPath=Get-Location

    $argstopass=$args[3..($args.Count-1)]

    Set-Location $path
} else {
    $name=$args[0]
    $argstopass=$args[1..($args.Count-1)]
}

if (-Not $args[0]) {
    'Please provide an input.'
    exit
}


' '
'----------------'
' '
'Jrun:'
'    javac-ing'
try {
    $javacReturned = javac ($name+'.java') 2>&1 | Out-String
    if ($LASTEXITCODE) {
        Throw
    }
}
catch {
    '    A Compile Error ocurred.'
    if ($originalPath -ne "Nah") { 
        Set-Location $originalPath
    }
    ''
    '    The error message:'
    ''
    $javacReturned
    exit
}

try {
    '    java-ing'
    ' '
    '----------------'
    ' '
    ('Response from running ' + $name + ': ')
    ' '
    $javareturned = java $name $argstopass
    $javareturned
    ' '
} catch {
    '    A Runtime Error ocurred.'
    if ($originalPath -ne "Nah") { 
        Set-Location $originalPath
    }
    ''
    '    The error message:'
    ''
    $javaReturned
    exit
}



if ($originalPath -ne "Nah") { 
    Set-Location $originalPath
}

И я знаю, что он может работать неправильно, если есть папка с именем «Нет» в текущем рабочем каталоге, но я не планирую отправлять этот код многим, и пользователи будут знать об этой ошибке.

Я хочу преобразовать это в bash, есть ли хороший межъязыковой словарь, который я могу использовать? Я не особенно хочу переписывать код без удобной машины.

Ps Я новичок в переполнении стека, lmk, если я должен сформулировать вопрос по-другому.

1 Ответ

2 голосов
/ 04 мая 2020

Итак, на самом деле это не проблема / ошибка кода PowerShell, но вы просите людей помочь вам переписать скрипт Powershell на другой язык, который не имеет ничего общего с PowerShell, в частности, потому что у вас нет доступа к среда * nix / OSX. Таким образом, можно предположить, что вы действительно не знаете Bash. Итак, вы буквально просите людей сделать вашу работу за вас.

Это не то, что мы здесь делаем ...

Правила переполнения стека:

Как мне задать хороший вопрос?

Как создать минимальный воспроизводимый пример

Почему «Может ли кто-нибудь мне помочь ?» не актуальный вопрос?

... хотя время от времени очень добрый человек может ...

Преобразование PowerShell в Bash

Есть несколько сайтов, которые предоставляют бесплатные инструменты для работы с bash онлайн.

Ничто не мешает вам установить / включить WSL (Windows Сервисы для Linux) и Linux дистрибутив на вашем устройстве Win10. Он фактически встроен в функции ОС Win 10 , что позволяет запускать / использовать Bash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...