Este código no Bash
s="There are seven pencil"
declare -A A
while IFS= read -rn1 a; do
[ -z "$a" ] || [ -n "${A[$a]}" ] && continue
printf %s "$a"
((A[$a]++)) # A[$a]=x
done <<<"$s"
echo
produz esta linha
Ther a...
suponha que você tenha uma matriz a=(foo 'bar baz')
existe uma maneira mais óbvia de aplicar um comando / função a cada elemento da matriz e salvar as seqüências resultantes em outra matriz que não esta:
b=()
for e in $a; do
b+=("$(...
Eu tenho uma função para mostrar o índice do elemento escolhido. Eu estou tentando passar um parâmetro para funcionar para usá-lo como um nome de matriz. Isso funciona:
getIndex() {
arrname=$1[@]
b=("${!arrname}")
index=1; while ((index<${...
Eu executo o seguinte código na versão Bash "GNU bash, Versão 4.2.39 (1) -release (x86_64-redhat-linux-gnu)":
function foobar {
declare -rgA FOOBAR=([foo]=bar)
}
foobar
declare -p FOOBAR
# Output: declare -Ar FOOBAR='()'
Por que o Bash...
Eu tenho um script bash que leva 3 argumentos:
$ do_something foo bar baz
e um arquivo com várias linhas, cada uma com três argumentos diferentes.
Eu quero executar o script como um cronjob, e cada vez que ele é chamado, ele deve chama...
Eu tenho um problema com meu script a seguir (essa é a parte relevante dele):
#!/bin/bash
OLD=(
"_MAIN1_"
"_MAIN2_"
)
NEW=(
"#111"
"#222"
)
length=${#OLD[*]}
i=0
while (( i < length ))
do
sed -e "s/${OLD[$i]}/${NEW[$i]}/g" oldfile.t...
Obviamente, recorte de um script muito mais complexo que tenha sido mais significativo:
#!/bin/bash
function InitializeConfig(){
declare -r -g -A SHCFG_INIT=( [a]=b )
declare -r -g -A SHCFG_INIT=( [c]=d )
echo "This statement nev...
Eu posso copiar um array para outro assim:
array2=("${array1[@]}")
Uma das desvantagens dessa abordagem é que os índices não serão preservados. Por exemplo: se array1 tiver três elementos com índices 1 e 2 e 5 , então array2...
Quando executo o seguinte código na versão do Bash "GNU bash, versão 4.1.10 (4) -release (i686-pc-cygwin)", recebo:
declare a
declare -p a
# Output: -bash: declare: a: not found
declare -i b
declare -p b
# Output: -bash: declare: b: not found...
eu tenho 2 arquivos cada um contém como segue:
arquivo 1:
data : [
56, 34, 23, 54,
90, 234, 53, 12
]
arquivo 2:
data : [
42, 56, 23, 98,
90, 23, 53, 32
]
Eu quero somar o primeiro valor do arquivo 1 com o primeiro...