table of contents
HASHSTASH(3) | 3 (libbash hashstash library manual) | HASHSTASH(3) |
NAME¶
hashstash — libbash library that implements hash data structureSYNOPSIS¶
- 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:
Detailed interface description follows.
- 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)June 7, 2017 | Linux |