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
$retval
Aval1
% hashKeys
Ahash
% echo
$retval
Akey1
%
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 |