GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana sumber variabel tertentu

Dimungkinkan untuk membatasi variabel menggunakan fungsi. Contoh:

## Provider.sh
# Global vars
declare -A map

# Wrap the rest of Provider.sh in a function

provider() {

    # Local vars only available in this function
    declare a=hello b=world c d


    # Global vars are available
    map[hello]=world

}

provider "[email protected]"    # Execute function, pass on any positional parameters

# Remove function
unset -f provider
$ cat Consumer.sh
. ./Provider.sh
echo "${map[hello]}"
echo "$a"
$ bash -x Consumer.sh
+ . ./Provider.sh
++ declare -A map
++ provider
++ declare a=hello b=world c d
++ map[hello]=world
++ unset -f provider
+ echo world
world
+ echo ''


Anda dapat menggunakan fungsi dan membuat variabel lokal atau global:

#!/bin/bash

foo() {
  declare -gA MAP # make global
  local A=hello # make local
  local B=world # make local
  MAP[hello]=world
}

foo

Lalu:

#!/bin/bash
source ./Provider.sh
[[ -z "$A" ]] && echo "Variable A not defined"
[[ -z "$B" ]] && echo "Variable B not defined"
echo ${MAP[hello]}

Keluaran:

Variable A not defined
Variable B not defined
world

Linux
  1. Bagaimana Kami Menjalankan Perintah yang Disimpan Dalam Variabel?

  2. Bagaimana Melakukan Evaluasi Variabel Tidak Langsung?

  3. Bagaimana Cara Memeriksa Apakah Variabel Ada Dalam Pernyataan 'jika'?

  1. Cara Memilih Penyedia VPS WordPress

  2. Bagaimana saya bisa menautkan ke versi glibc tertentu?

  3. Bagaimana cara merutekan hanya subnet tertentu (sumber ip) ke antarmuka tertentu?

  1. Cara Menetapkan Output dari Perintah Linux ke Variabel

  2. Bagaimana Menunda Ekspansi Variabel?

  3. Bagaimana Cara Ssh Ke Direktori Tertentu?