[bash] functie met string return

Pagina: 1
Acties:

  • daVeX
  • Registratie: September 2001
  • Laatst online: 02-10-2024
Ik heb zojuist maar weer eens het bash scripten opgepakt en nu loop ik tegen het volgende probleem:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
#
#

string_function ()
{
  string="abcdefg"
  
  echo $string$1
}

output=`string_function "zxy"`
echo "$output"


Opzich werkt deze code prima, maar ik wil niet dat de string echood op de console, maar dat ik deze weer in een variabele kan gebruiken zoiets dus:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
#
#

string_function ()
{
  string="abcdefg"
  
  echo $string$1
}

output=`string_function "zxy"`

if [ ${ouput:0:4} = "abcd"  ] 
#controleer of de eerste vier characters van de string "abcd" zijn.
then
  echo "worx"
else
  echo "failed"
fi


Dit laatste voorbeel zou natuurlijk "worx" op de console moeten afdrukken.. maar in plaats daarvan krijg ik dit:

./test1: [: =: unary operator expected
failed

Iemand enig idee hoe ik strings goed kan returnen naar een variabele?

  • timstegeman
  • Registratie: Januari 2000
  • Laatst online: 31-07 20:47
Werk het niet gewoon met "return $string"

  • daVeX
  • Registratie: September 2001
  • Laatst online: 02-10-2024
Nee helaas, return werkt alleen met integers... (zover ik gezien heb)

  • timstegeman
  • Registratie: Januari 2000
  • Laatst online: 31-07 20:47
Ik heb zo ff geen shell bij de hand, maar kun je ${ouput:0:4} niet beter tussen aanhalingstekens zetten. Anders krijg je zowieso een fout als die leeg is.

  • daVeX
  • Registratie: September 2001
  • Laatst online: 02-10-2024
verdorie.. het werkt gewoon :S

een typo dus.... in ${ouput:0:4}

Nu eens kijken in mijn echte script waarom het daar dus fout gaat....

Gooi maar dicht dit topic ...... sorrie voor de overlast ;) :D