Я создал код .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, если я должен сформулировать вопрос по-другому.