Bununla çalışıyorum:
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Aşağıdaki gibi bir senaryom var:
#!/bin/bash
e=2
function test1() {
e=4
echo "hello"
}
test1
echo "$e"
Hangi döndürür:
hello
4
Ancak fonksiyonun sonucunu bir değişkene atarsam, global değişken e
değiştirilmez:
#!/bin/bash
e=2
function test1() {
e=4
echo "hello"
}
ret=$(test1)
echo "$ret"
echo "$e"
İadeler:
hello
2
Bu durumda eval'un kullanıldığını duydum , bu yüzden şunu yaptım test1
:
eval 'e=4'
Ama aynı sonuç.
Bana neden değiştirilmediğini açıklar mısınız? test1
Fonksiyonun yankısını nasıl kaydedebilirim ret
ve global değişkeni de nasıl değiştirebilirim?