( stra | 2012. 01. 22., v – 17:45 )

"A . valóban ugyanabban a shell folyamatban fut [...], viszont az így be "includeolt" scriptben létrehozott, módosított változók nem jönnek át a scriptet "includoló" scriptbe. Ha az "includolt" script változói, érték módosításai kellenek, akkor azokat "export" -al kell definiálni."
Ezek az információk honnan származnak?! Tudnál valami forrást idézni, például manual?

Most a bash és a dash viszonylatában beszélünk erről? A dash, ahogy írtad, nem ismeri a source-ot, csak pontként. A bash manualja pedig egyértelműen leírja, hogy a két forma ugyanaz.

De tegyünk egy próbát a 2. pontodnak megfelelően:

A két forrás:


  $ cat a.sh
  #!/bin/bash
  
  V=135
  echo "A1: $V"
  . b.sh
  echo "A2: $V ; $W"
  $

  $ cat b.sh
  #!/bin/bash
  
  echo "B1: $V"
  V=246
  W=357
  echo "B2: $V ; $W"
  $

Szerinted 135 és semmi lenne az a.sh utolsó (A2) eredménye. Valójában pedig:


  $ ./a.sh
  A1: 135
  B1: 135
  B2: 246 ; 357
  A2: 246 ; 357
  $

És hogy mi produkálta ezt a szerinted nem megfelelő eredményt? Egy Debian Squeeze, pont olyan, mint a te rendszered.


$ bash --version
bash --version
GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$