Вы можете дать код ниже,
public void multiArrayCopy(int[][] source,int[][] destination){
destination=source.clone();}
Надеюсь, что он работает.
Исправленный ответ (12 февраля 2014 г.)
the_world_is_flat=true
# ...do something interesting...
if [ "$the_world_is_flat" = true ] ; then
echo 'Be careful not to fall off!'
fi
Исходный ответ
Предостережения: https://stackoverflow.com/a/21210966/89391
the_world_is_flat=true
# ...do something interesting...
if $the_world_is_flat ; then
echo 'Be careful not to fall off!'
fi
От: Использование логических переменных в Bash
Причина, по которой здесь включен исходный ответ, заключается в том, что комментарии до исправления от 12 февраля 2014 г. относятся только к исходному ответу, а многие из комментариев неверны, если связаны с исправленным ответом. . Например, комментарий Денниса Уильямсона о bash builtin true
от 2 июня 2010 г. применим только к исходному ответу, а не к исправленному.
Можно использовать GFlags: https://gflags.github.io/gflags /
Это дает Вам опцию определить: DEFINE_bool
Пример:
DEFINE_bool(big_menu, true, "Include 'advanced' options in the menu listing");
Из командной строки можно определить:
sh script.sh --bigmenu
sh script.sh --nobigmenu # False
Это - тест скорости о различных способах протестировать "булевы" значения в Bash:
#!/bin/bash
rounds=100000
b=true # for true; b=false for false
type -a true
time for i in $(seq $rounds); do command $b; done
time for i in $(seq $rounds); do $b; done
time for i in $(seq $rounds); do [ "$b" == true ]; done
time for i in $(seq $rounds); do test "$b" == true; done
time for i in $(seq $rounds); do [[ $b == true ]]; done
b=x; # or any non-null string for true; b='' for false
time for i in $(seq $rounds); do [ "$b" ]; done
time for i in $(seq $rounds); do [[ $b ]]; done
b=1 # or any non-zero integer for true; b=0 for false
time for i in $(seq $rounds); do ((b)); done
Это распечатало бы что-то как
true is a shell builtin
true is /bin/true
real 0m0,815s
user 0m0,767s
sys 0m0,029s
real 0m0,562s
user 0m0,509s
sys 0m0,022s
real 0m0,829s
user 0m0,782s
sys 0m0,008s
real 0m0,782s
user 0m0,730s
sys 0m0,015s
real 0m0,402s
user 0m0,391s
sys 0m0,006s
real 0m0,668s
user 0m0,633s
sys 0m0,008s
real 0m0,344s
user 0m0,311s
sys 0m0,016s
real 0m0,367s
user 0m0,347s
sys 0m0,017s
Альтернатива - использует функцию
is_ok(){ :;}
is_ok(){ return 1;}
is_ok && echo "It's OK" || echo "Something's wrong"
, Определение функции менее интуитивно, но проверка ее возвращаемого значения очень легка.
Относительно синтаксиса это - простая методология, к которой я использую (примером) последовательно и нормально управляю Булевой логикой:
# tests
var=
var=''
var=""
var=0
var=1
var="abc"
var=abc
if [[ -n "${var}" ]] ; then
echo 'true'
fi
if [[ -z "${var}" ]] ; then
echo 'false'
fi
# results
# var= # false
# var='' # false
# var="" # false
# var=0 # true
# var=1 # true
# var="abc" # true
# var=abc # true
, Если переменная никогда не объявляется ответом: # false
Так, простой способ установить переменную на истинный (использующий эту методологию синтаксиса) был бы, var=1
; с другой стороны, var=''
.
Ссылка:
-n
= Верный, если длина строки var является ненулевой.
-z
= Верный, если длина строки var является нулем.