LINUX.ORG.RU

#!/bin/sh
swap () {
    local x=\$"$1"
    local y=\$"$2"
    local valueofx=`eval "expr \"$x\" "`
    local valueofy=`eval "expr \"$y\" "`
    eval "$1=\"$valueofy\""
    eval "$2=\"$valueofx\""
}

a=4
b=2
c=8

echo "Before swapping"
echo "a="$a "b="$b "c="$c"\n"

swap a b

echo "Swap #1 (a <-> b)"
echo "a="$a "b="$b "c="$c"\n"

swap c a

echo "Swap #2 (c <-> a)"
echo "a="$a "b="$b "c="$c"\n"

exl@exl-Lenovo-G560e:~/SandBox > ./swap.sh 
Before swapping
a=4 b=2 c=8

Swap #1 (a <-> b)
a=2 b=4 c=8

Swap #2 (c <-> a)
a=8 b=4 c=2

EXL ★★★★★
()

можно свапнуть через XOR

#!/bin/bash

a=2
b=9

let "a=$a^$b"
let "b=$a^$b"
let "a=$a^$b"

echo $a
echo $b
boneshaker
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.