table of contents
| HASHSTASH(3) | 3 (libbash hashstash library manual) | HASHSTASH(3) |
NAME¶
hashstash —
libbash library that implements hash data
structure
SYNOPSIS¶
hashSet- ⟨Value⟩ ⟨Key⟩ ⟨HashName⟩
[SubHashName []...]
- $retval
hashGet - ⟨Key⟩ ⟨HashName⟩ [SubHashName []...]
- $retval
hashKeys - ⟨HashName⟩ [SubHashName []...]
hashRemove- ⟨Key⟩ ⟨HashName⟩ [SubHashName []...]
hashDelete- ⟨HashName⟩ [SubHashName []...]
DESCRIPTION¶
General¶
hashstash is a collection of
functions that implement basic hash data-structure in bash scripting language.
The function list:
- hashSet
- Adds a value to the hash
- hashGet
- Returns a value from the hash
- hashKeys
- Returns a list of keys of the hash
- hashRemove
- Removes a key from the hash
- hashDelete
- Deletes a hash
FUNCTIONS DESCRIPTIONS¶
hashSet ⟨Value⟩ ⟨Key⟩ ⟨Hashname⟩ [SubHashName [...]]¶
Adds a value to the hash. Parameters:- ⟨Value⟩
- The value to set in HashName[Key].
- ⟨Key⟩
- The key for the value Value.
- ⟨HashName⟩
[SubHashName []...]
- A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name.
hashSet cval1 ckey1 A B
C
$retval hashGet ⟨Key⟩ ⟨HashName⟩ [SubHashName [...]]¶
Returns the value of Key in HashName to the $retval variable. Parameters:- ⟨Key⟩
- The key that hold the value we wish to get.
- ⟨HashName⟩
[SubHashName []...]
- A string that contains the name of the hash. If the hash is a sub hash of another hash, the “father hash” name MUST BE WRITTEN FIRST, followed by the sub-hash name.
The value of the key
Key in the hash
HashName. The value is returned in the
variable $retval.
$retval hashKeys ⟨HashName⟩ [SubHashName [...]]¶
Returns a list of keys of the hash HashName in the variable $retval. Parameters:- ⟨HashName⟩
[SubHashName []...]
- A string that contains the name of the hash. If the hash is a sub hash of another hash, the “father hash” name MUST BE WRITTEN FIRST, followed by the sub-hash name.
The value of the key
Key in the hash
HashName. The value is returned in the
variable $retval.
hashRemove ⟨Key⟩ ⟨HashName⟩ [SubHashName [...]]¶
Removes the key Key from the hash HashName.- ⟨Key⟩
- The key we wish to remove from HashName.
- ⟨HashName⟩
[SubHashName []...]
- A string that contains the name of the hash. If the hash is a sub hash of another hash, the “father hash” name MUST BE WRITTEN FIRST, followed by the sub-hash name.
hashDelete ⟨HashName⟩ [SubHashName [...]]¶
Deletes the hash HashName [SubHashName [
].
Parameters:
...
]- ⟨HashName⟩
[SubHashName []...]
- A string that contains the name of the hash. If the hash is a sub hash of another hash, the “father hash” name MUST BE WRITTEN FIRST, followed by the sub-hash name.
BUGS¶
A hash name can only contain characters that are valid as part of bash variable
names (i.e. a-zA-Z0-9_). The same applies for hash keys.
As for now, there is no way of knowing if a key represents a value or a
sub-hash. If a sub-hash will be used as a key, the returned value will be its
keys list.
EXAMPLES¶
Define hash table hashA with key Akey1 with value Aval1 use:% hashSet
Aval1 Akey1 Ahash% hashGet
Akey1 Ahash% echo
$retvalAval1% hashKeys
Ahash% echo
$retvalAkey1%HISTORY¶
The idea to write
hashstash
library appeared when we've discovered the full power of the bash
eval function.
As of the name hashstash, it has two
meanings. The first, it means ‘stash’ of
hash functions. The second is, that
hashstash contains subhashes inside, so it
looks like stash of packed information.AUTHORS¶
Hai Zaar ⟨haizaar@haizaar.com⟩Gil Ran ⟨gil@ran4.net⟩
SEE ALSO¶
ldbash(1), libbash(1)| August 9, 2018 | Linux |