История изменений
Исправление sunjob, (текущая версия) :
#!/bin/sh
#set -e; ###!!! пришлось отключить !!!###
clear
S1=AAA.BBB.DDD
S2=AAA.BBB.CCC
#///////////////////////////////////////////////////////////////////////////////
doteq()
#///////////////////////////////////////////////////////////////////////////////
{
if [[ "$(echo $1 | wc -c)" -lt "$(echo $2 | wc -c)" ]]; then
egrep -oq "$1" <<< "$2" && echo "$1 = $1"
else
egrep -oq "$2" <<< "$1" && echo "$2 = $2"
fi
}
#///////////////////////////////////////////////////////////////////////////////
echo "before:
$S1
$S2
"
doteq $S1 $S2
echo "after:
$S1
$S2
"
exit
строки НЕ-равные (вроде все правильно)
before:
AAA.BBB.DDD
AAA.BBB.CCC
after:
AAA.BBB.DDD
AAA.BBB.CCC
строки равные (строки не урезаны, т.е. не измененные после функции)
before:
AAA.BBB
AAA.BBB.CCC
AAA.BBB = AAA.BBB
after:
AAA.BBB
AAA.BBB.CCC
ИТОГО: проверка работает, но строки не изменяются, т.е. не урезаются после сравнения
Исправление sunjob, :
присмотрелся дотошно к Вашему коду:
#!/bin/sh
#set -e; ###!!! пришлось отключить !!!###
clear
S1=AAA.BBB.DDD
S2=AAA.BBB.CCC
#///////////////////////////////////////////////////////////////////////////////
doteq()
#///////////////////////////////////////////////////////////////////////////////
{
if [[ "$(echo $1 | wc -c)" -lt "$(echo $2 | wc -c)" ]]; then
egrep -oq "$1" <<< "$2" && echo "$1 = $1"
else
egrep -oq "$2" <<< "$1" && echo "$2 = $2"
fi
}
#///////////////////////////////////////////////////////////////////////////////
echo "before:
$S1
$S2
"
doteq $S1 $S2
echo "after:
$S1
$S2
"
exit
строки НЕ-равные (вроде все правильно)
before:
AAA.BBB.DDD
AAA.BBB.CCC
after:
AAA.BBB.DDD
AAA.BBB.CCC
строки равные (строки не урезаны, т.е. не измененные после функции)
before:
AAA.BBB
AAA.BBB.CCC
AAA.BBB = AAA.BBB
after:
AAA.BBB
AAA.BBB.CCC
ИТОГО: проверка работает, но строки не изменяются, т.е. не урезаются после сравнения
Исправление sunjob, :
присмотрелся дотошно к Вашему коду:
#!/bin/sh
#set -e;
clear
S1=AAA.BBB.DDD
S2=AAA.BBB.CCC
#///////////////////////////////////////////////////////////////////////////////
doteq()
#///////////////////////////////////////////////////////////////////////////////
{
if [[ "$(echo $1 | wc -c)" -lt "$(echo $2 | wc -c)" ]]; then
egrep -oq "$1" <<< "$2" && echo "$1 = $1"
else
egrep -oq "$2" <<< "$1" && echo "$2 = $2"
fi
}
#///////////////////////////////////////////////////////////////////////////////
echo "before:
$S1
$S2
"
doteq $S1 $S2
echo "after:
$S1
$S2
"
exit
строки НЕ-равные (вроде все правильно)
before:
AAA.BBB.DDD
AAA.BBB.CCC
after:
AAA.BBB.DDD
AAA.BBB.CCC
строки равные (строки не урезаны, т.е. не измененные после функции)
before:
AAA.BBB
AAA.BBB.CCC
AAA.BBB = AAA.BBB
after:
AAA.BBB
AAA.BBB.CCC
ИТОГО: проверка работает, но строки не изменяются, т.е. не урезаются после сравнения
Исправление sunjob, :
присмотрелся дотошно к Вашему коду:
#!/bin/sh
#
# https://www.linux.org.ru/forum/development/14648385?cid=14650589
#
#set -e;
clear
S1=AAA.BBB.DDD
S2=AAA.BBB.CCC
#///////////////////////////////////////////////////////////////////////////////
doteq()
#///////////////////////////////////////////////////////////////////////////////
{
if [[ "$(echo $1 | wc -c)" -lt "$(echo $2 | wc -c)" ]]; then
egrep -oq "$1" <<< "$2" && echo "$1 = $1"
else
egrep -oq "$2" <<< "$1" && echo "$2 = $2"
fi
}
#///////////////////////////////////////////////////////////////////////////////
echo "before:
$S1
$S2
"
doteq $S1 $S2
echo "after:
$S1
$S2
"
exit
строки НЕ-равные (вроде все правильно)
before:
AAA.BBB.DDD
AAA.BBB.CCC
after:
AAA.BBB.DDD
AAA.BBB.CCC
строки равные (строки не урезаны, т.е. не измененные после функции)
before:
AAA.BBB
AAA.BBB.CCC
AAA.BBB = AAA.BBB
after:
AAA.BBB
AAA.BBB.CCC
ИТОГО: проверка работает, но строки не изменяются, т.е. не урезаются после сравнения
Исходная версия sunjob, :
присмотрелся дотошно к Вашему коду:
#!/bin/sh
#
# https://www.linux.org.ru/forum/development/14648385?cid=14650589
#
#set -e;
clear
S1=AAA.BBB.DDD
S2=AAA.BBB.CCC
#///////////////////////////////////////////////////////////////////////////////
doteq()
#///////////////////////////////////////////////////////////////////////////////
{
if [[ "$(echo $1 | wc -c)" -lt "$(echo $2 | wc -c)" ]]; then
egrep -oq "$1" <<< "$2" && echo "$1 = $1"
else
egrep -oq "$2" <<< "$1" && echo "$2 = $2"
fi
}
#///////////////////////////////////////////////////////////////////////////////
echo "before:
$S1
$S2
"
doteq $S1 $S2
echo "after:
$S1
$S2
"
exit
строки НЕ-равные (вроде все правильно)
before:
AAA.BBB.DDD
AAA.BBB.CCC
after:
AAA.BBB.DDD
AAA.BBB.CCC
строки равные (строки не урезаны, т.е. не измененные после функции)
before:
AAA.BBB
AAA.BBB.CCC
AAA.BBB = AAA.BBB
after:
AAA.BBB
AAA.BBB.CCC
ИТОГО: проверка работает, но строки не изменяются, т.е. не урезаются после сравнения