Batsh — простой язык программирования, который компилируется в файлы Bash и Windows Batch. Таким образом, можно один раз написать скрипт на Batsh — и он скомпилируется в исполняемые файлы на Linux, Mac OS и Windows, без всяких зависимостей.
Результат на Bash
Результат на Windows Batch
Результат на Bash
Результат на Windows Batch
Результат на Bash
Результат на Windows Batch
Разработчики подчёркивают, что писать на Batsh гораздо проще, чем на Bash и Windows Batch, по отдельности. В доказательство они приводят несколько примеров.
Примеры
Выражение
a = 1;
b = "string";
c = [1, 2, "str", true, false];
a = 1 + 2;
b = a * 7;
c = "Con" ++ "cat";
d = c ++ b;
Результат на Bash
a=$((1))
b="string"
c=($((1)) $((2)) "str" $((1)) $((0)))
a=$((1 + 2))
b=$(($a * 7))
c="Con""cat"
d="$c""$b"
Результат на Windows Batch
@echo off
setlocal EnableDelayedExpansion
setlocal EnableExtensions
set /a a=1
set b=string
set /a c_0=1
set /a c_1=2
set c_2=str
set /a c_3=1
set /a c_4=0
set /a a=^(1 + 2^)
set /a b=^(!a! * 7^)
set c=Concat
set d=!c!!b!
Рекурсия
function fibonacci(num) {
if (num == 0) {
return 0;
} else if (num == 1) {
return 1;
} else {
return fibonacci(num - 2) + fibonacci(num - 1);
}
}
fibonacci(5);
Результат на Bash
function fibonacci {
local _1
local num
local _0
num="$1"
if [ "$num" == $((0)) ]; then
"echo" "-ne" $((0))
return
else
if [ "$num" == $((1)) ]; then
"echo" "-ne" $((1))
return
else
_0=$("fibonacci" $(($num - 2)))
_1=$("fibonacci" $(($num - 1)))
"echo" "-ne" $(($_0 + $_1))
return
fi
fi
}
"fibonacci" $((5))
Результат на Windows Batch
@echo off
setlocal EnableDelayedExpansion
setlocal EnableExtensions
set /a _0=5
call :fibonacci _1 0 _0
echo | set /p ^=!_1!
goto :EOF
:fibonacci
set num_%~2=!%~3!
if !num_%~2! EQU 0 (
set %~1=0
goto :EOF
) else (
if !num_%~2! EQU 1 (
set %~1=1
goto :EOF
) else (
set /a _0_%~2=^(!num_%~2! - 2^)
set /a _5_%~2=^(1 + %~2^)
call :fibonacci _6_%~2 !_5_%~2! _0_%~2
set _1_%~2=!_6_%~2!
set /a _2_%~2=^(!num_%~2! - 1^)
set /a _7_%~2=^(1 + %~2^)
call :fibonacci _8_%~2 !_7_%~2! _2_%~2
set _3_%~2=!_8_%~2!
set /a _4_%~2=^(!_1_%~2! + !_3_%~2!^)
set %~1=!_4_%~2!
goto :EOF
)
)
Цикл
// Fibonacci
n = 0;
i = 0;
j = 1;
while (n < 60) {
k = i + j;
i = j;
j = k;
n = n + 1;
echo(k);
}
Результат на Bash
# Fibonacci
n=$((0))
i=$((0))
j=$((1))
while [ $(($n < 60)) == 1 ]; do
k=$(($i + $j))
i="$j"
j="$k"
n=$(($n + 1))
"echo" "$k"
done
Результат на Windows Batch
@echo off
setlocal EnableDelayedExpansion
setlocal EnableExtensions
rem Fibonacci
set /a n=0
set /a i=0
set /a j=1
:WHILE_0
if !n! LSS 60 (
set /a k=^(!i! + !j!^)
set i=!j!
set j=!k!
set /a n=^(!n! + 1^)
echo !k!
goto WHILE_0
)
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий