Bash variabelen

Pagina: 1
Acties:

  • Vuurvlieg
  • Registratie: Januari 2000
  • Laatst online: 05-06 15:09
met een bash script roep ik een php script aan en ik krijg het volgende probleem:

stel ik heb een variabele
$a = "dit is een variabele"

deze variabele wil ik doorgeven aan een ander script (naam is scripta) in bash dus ik roep aan:
scripta $a

maar nu wil ik deze variabele dus gebruiken, dus deed ik
$a = $argv[1] in dat andere script, maar dit levert alleen de "dit" op, hoe krijg ik de hele string in 1 variabele, ik weet dus vantevoren niet uit hoeveel woorden zo'n string is opgebouwd, ik heb geprobeerd om dit te doen:
scripta '$a'
maar dit levert $a op als ik $argv[1] echo.. wie heeft een oplossing?

Verwijderd

Je kan de spatie vervangen door een ander teken, doorsturen naar ander script en daar weer de spatie terugzetten, maar een nette oplossing is het niet. Zeker als dat tekn wat je als spatie gebruikt ook nog eens kan voorkomen in de rest van de spring heb je een probleem, en moet je het caracter ook nog eens kaan escapen en dat afvangen.

Er zal vast een nettere manier zijn, maar misschien helpt dit toch.

Succes :)

  • Vuurvlieg
  • Registratie: Januari 2000
  • Laatst online: 05-06 15:09
thnx!

Verwijderd

werkt dit niet
code:
1
2
3
4
#!/bin/bash

a="dit is een test";
./test.php "$a";

  • wiho
  • Registratie: Februari 2000
  • Laatst online: 31-08 20:01

wiho

Certified Nerd

De nette manier:

scripta "$a"

Dus dubbele quotes in plaats van enkele. Alleen binnen dubbele quotes worden shell-variabelen ge-extrapoleerd.

"Pas als het proces gecrashed is, dumpt men de core"


  • bras
  • Registratie: Oktober 2000
  • Laatst online: 13-08 14:08
Ik heb een sh scriptje geprobeerd, en daarin kun je gebruik maken van $# om het aantal argumenten te achterhalen en $* of $@ om ze allemaal weer te geven, ik weet echter niet of dat ook werkt met zo'n $a argument.

succes :)

"When you find yourself in the company of a halfling and an ill-tempered Dragon, remember, you do not have to outrun the Dragon...you just have to outrun the halfling."


Verwijderd

The first rule of shell scripting:
"If you don't know for sure, double quote it." (double quotes intended)
Pagina: 1