LINUX.ORG.RU

История изменений

Исправление 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

ИТОГО: проверка работает, но строки не изменяются, т.е. не урезаются после сравнения