# Galician translation for bash package.
# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
#
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2011.
# Francisco Diéguez <frandieguez@ubuntu.com>, 2012.
# Fran Dieguez <frandieguez@gnome.org>, 2012.
#
# Proxecto Trasno - Adaptación do software libre á lingua galega:  Se desexas
# colaborar connosco, podes atopar máis información en <http://trasno.net>
#
msgid ""
msgstr ""
"Project-Id-Version: bash 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2012-02-23 14:38+0100\n"
"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"

#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "subíndice de matriz incorrecto"

#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: non é posíbel converter a matriz de indizada a asociativa"

#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: índice de matriz asociativa non válido"

#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: non é posíbel asignar a un índice que non é numérico"

#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: se debe usar un subíndice ao asignar a unha matriz asociativa"

#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: non foi posíbel crear: %s"

#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
"bash_execute_unix_command: non foi posíbel atopar a combinación de teclas "
"para a orde"

#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: o primeiro carácter que non é espazo en branco non é `\"'"

#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "no hai un `%c' que peche en %s"

#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: falta un `:' separador"

#: braces.c:321
#, c-format
msgid "brace expansion: cannot allocate memory for %s"
msgstr ""

#: braces.c:413
#, c-format
msgid "brace expansion: failed to allocate memory for %d elements"
msgstr ""

#: braces.c:452
#, c-format
msgid "brace expansion: failed to allocate memory for `%s'"
msgstr ""

#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "`%s': nome de alias non válido"

#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "no se activó a edición de liña"

#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "`%s': nome de combinación de teclas non válido"

#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: non se pode leer: %s"

#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "%s: non se pode borrar a asignación"

#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s': nome de función descoñecido"

#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s non está asignado a ningunha tecla.\n"

#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s pódese invocar a través de "

#: builtins/break.def:77 builtins/break.def:117
msgid "loop count"
msgstr "contía de ciclo"

#: builtins/break.def:137
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "só ten significado nun ciclo `for', `while' ou `until'"

#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
"    \n"
"    Without EXPR, returns "
msgstr ""
"Devolve o contexto da chamada a subrutina actual.\n"
"    \n"
"    Sen EXPR, devovle "

#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME non está definido"

#: builtins/cd.def:327 builtins/common.c:166 test.c:876
msgid "too many arguments"
msgstr "demasiados argumentos"

#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD non está definido"

#: builtins/common.c:101
#, c-format
msgid "line %d: "
msgstr "liña %d: "

#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "aviso: "

#: builtins/common.c:153
#, c-format
msgid "%s: usage: "
msgstr "%s: uso: "

#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: a opción require un argumento"

#: builtins/common.c:198
#, c-format
msgid "%s: numeric argument required"
msgstr "%s: requírese un argumento numérico"

#: builtins/common.c:205
#, c-format
msgid "%s: not found"
msgstr "%s: non se atopou"

#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: opción non válida"

#: builtins/common.c:221
#, c-format
msgid "%s: invalid option name"
msgstr "%s: nome de opción non válido"

#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': non é un identificador válido"

#: builtins/common.c:238
msgid "invalid octal number"
msgstr "número octal non válido"

#: builtins/common.c:240
msgid "invalid hex number"
msgstr "número hexadecimal non válido"

#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "número non válido"

#: builtins/common.c:250
#, c-format
msgid "%s: invalid signal specification"
msgstr "%s: especificación de sinal non válida"

#: builtins/common.c:257
#, c-format
msgid "`%s': not a pid or valid job spec"
msgstr "`%s': no é un pid ou unha especificación válida de traballo"

#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: variábel de só lectura"

#: builtins/common.c:272
#, c-format
msgid "%s: %s out of range"
msgstr "%s: %s fóra de rango"

#: builtins/common.c:272 builtins/common.c:274
msgid "argument"
msgstr "argumento"

#: builtins/common.c:274
#, c-format
msgid "%s out of range"
msgstr "%s fóra de rango"

#: builtins/common.c:282
#, c-format
msgid "%s: no such job"
msgstr "%s: non existe ese traballo"

#: builtins/common.c:290
#, c-format
msgid "%s: no job control"
msgstr "%s: no hai control de traballos"

#: builtins/common.c:292
msgid "no job control"
msgstr "no ha control de traballos"

#: builtins/common.c:302
#, c-format
msgid "%s: restricted"
msgstr "%s: restrinxido"

#: builtins/common.c:304
msgid "restricted"
msgstr "restrinxido"

#: builtins/common.c:312
#, c-format
msgid "%s: not a shell builtin"
msgstr "%s: no é una orde interna do shell"

#: builtins/common.c:321
#, c-format
msgid "write error: %s"
msgstr "erro de escritura: %s"

#: builtins/common.c:329
#, c-format
msgid "error setting terminal attributes: %s"
msgstr "erro ao estabelecer os atributos da terminal: %s"

#: builtins/common.c:331
#, c-format
msgid "error getting terminal attributes: %s"
msgstr "erro ao obtener os atributos da terminal: %s"

#: builtins/common.c:563
#, c-format
msgid "%s: error retrieving current directory: %s: %s\n"
msgstr "%s: erro ao obtener o directorio actual: %s: %s\n"

#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
msgstr "%s: especificación de traballo ambigüa"

#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: nome de acción non válido"

#: builtins/complete.def:450 builtins/complete.def:645
#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: non hai completado de especificación"

#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "aviso: é posíbel que a opción -F non funcione como se espera"

#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "aviso: é posíbel que a opción -C non funcione como se espera"

#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "non se está executando a función de completado"

#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "só se pode usar dentro dunha función"

#: builtins/declare.def:315 builtins/declare.def:509
#, c-format
msgid "%s: reference variable cannot be an array"
msgstr ""

#: builtins/declare.def:324
#, c-format
msgid "%s: nameref variable self references not allowed"
msgstr ""

#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "non se pode use `-f' para facer funcións"

#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: función de só lectura"

#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: non é posíbel destruír variábeis de matriz desta forma"

#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: non é posíbel converter unha matriz asociativa a indizada"

#: builtins/enable.def:137 builtins/enable.def:145
msgid "dynamic loading not available"
msgstr "a carga dinámica non está dispoñíbel"

#: builtins/enable.def:312
#, c-format
msgid "cannot open shared object %s: %s"
msgstr "non é posíbel abrir o obxecto compartido %s: %s"

#: builtins/enable.def:335
#, c-format
msgid "cannot find %s in shared object %s: %s"
msgstr "non é posíbel atopar %s no obxecto compartido %s: %s"

#: builtins/enable.def:459
#, c-format
msgid "%s: not dynamically loaded"
msgstr "%s: non foi cargado dinamicamente"

#: builtins/enable.def:474
#, c-format
msgid "%s: cannot delete: %s"
msgstr "%s: non foi posíbel eliminar: %s"

#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: é un directorio"

#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: non é un ficheiro regular"

#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: o ficheiro é demasiado grande"

#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: non é posíbel executar o ficheiro binario"

#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
#, c-format
msgid "%s: cannot execute: %s"
msgstr "%s: non foi posíbel executar: %s"

#: builtins/exit.def:65
#, c-format
msgid "logout\n"
msgstr "logout\n"

#: builtins/exit.def:88
msgid "not login shell: use `exit'"
msgstr "non é un shell de entrada: use `exit'"

#: builtins/exit.def:120
#, c-format
msgid "There are stopped jobs.\n"
msgstr "Hai traballos pendentes.\n"

#: builtins/exit.def:122
#, c-format
msgid "There are running jobs.\n"
msgstr "Hay traballos en execución.\n"

#: builtins/fc.def:262
msgid "no command found"
msgstr "non foi posíbel atopar a orde"

#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "especificación de historial"

#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: non é posíbel abrir o ficheiro temporal: %s"

#: builtins/fg_bg.def:149 builtins/jobs.def:282
msgid "current"
msgstr "actual"

#: builtins/fg_bg.def:158
#, c-format
msgid "job %d started without job control"
msgstr "o traballo %d iniciou sen control de traballo"

#: builtins/getopt.c:110
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opción ilegal -- %c\n"

#: builtins/getopt.c:111
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: a opción require un argumento -- %c\n"

#: builtins/hash.def:92
msgid "hashing disabled"
msgstr "asociación desactivada"

#: builtins/hash.def:138
#, c-format
msgid "%s: hash table empty\n"
msgstr "%s: táboa de asociación baleira\n"

#: builtins/hash.def:245
#, c-format
msgid "hits\tcommand\n"
msgstr "coinc\torde\n"

#: builtins/help.def:130
#, c-format
msgid "Shell commands matching keyword `"
msgid_plural "Shell commands matching keywords `"
msgstr[0] "Orde do shell que coincide coa palabra `"
msgstr[1] "Orde do shell que coincide coas palabras `"

#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
msgstr ""
"non hai temas de axuda que coincidan con «%s». Probe «help help» ou «man -k "
"%s» ou «info %s»"

#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: non foi posíbel abrir: %s"

#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally.  Type `help' to see this list.\n"
"Type `help name' to find out more about the function `name'.\n"
"Use `info bash' to find out more about the shell in general.\n"
"Use `man -k' or `info' to find out more about commands not in this list.\n"
"\n"
"A star (*) next to a name means that the command is disabled.\n"
"\n"
msgstr ""
"Estas ordes do shell están definidas internamente.  Teclee `help' para\n"
"ver esta lista.\n"
"Teclee `help nome' para saber máis sobre a función `nome'.\n"
"Use `info bash' para saber máis sobre o shell en xeral.\n"
"Use `man -k' o `info' para saber máis sobre as órdenes que non están nesta "
"lista.\n"
"\n"
"Un asterisco (*) xunto a un nome significa que a orde está desactivada.\n"
"\n"

#: builtins/history.def:154
msgid "cannot use more than one of -anrw"
msgstr "non foi posíbel usar máis dun de -anrw"

#: builtins/history.def:186
msgid "history position"
msgstr "posición no historial"

#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: fallou a expansión do historial"

#: builtins/inlib.def:71
#, c-format
msgid "%s: inlib failed"
msgstr "%s: fallou inlib"

#: builtins/jobs.def:109
msgid "no other options allowed with `-x'"
msgstr "non se permiten outras opcións con «-x»"

#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: os argumentos deben ser procesos ou IDs de traballos"

#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Erro descoñecido"

#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "agardábase unha expresión"

#: builtins/mapfile.def:172
#, c-format
msgid "%s: not an indexed array"
msgstr "%s: non é unha matriz indizada"

#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: especificación de descritor de ficheiro non válida"

#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: descritor de ficheiro non válido: %s"

#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: conta de liñas non válida"

#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: orixe de matriz non válido"

#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: quantum de chamada non válido"

#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "nome de variábel de matriz baleiro"

#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "requírese a compatibilidade de variábel de matriz"

#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "`%s': falta o carácter de formato"

#: builtins/printf.def:456
#, c-format
msgid "`%c': invalid time format specification"
msgstr "`%c': especificación de formato de tempo non válida"

#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "`%c': carácter de formato non válido"

#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "aviso: %s: %s"

#: builtins/printf.def:768
#, c-format
msgid "format parsing problem: %s"
msgstr ""

#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "falta o díxito hexadecimal para \\x"

#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr "falta o díxito unicode para \\%c"

#: builtins/pushd.def:195
msgid "no other directory"
msgstr "non hai outro directorio"

#: builtins/pushd.def:354
#, fuzzy, c-format
msgid "%s: invalid argument"
msgstr "%s: límite de argumento non válido"

#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<non hai directorio actual>"

#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "a pila de directorios está baleira"

#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "índice da pila de directorios"

#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories.  Directories\n"
"    find their way onto the list with the `pushd' command; you can get\n"
"    back up through the list with the `popd' command.\n"
"    \n"
"    Options:\n"
"      -c\tclear the directory stack by deleting all of the elements\n"
"      -l\tdo not print tilde-prefixed versions of directories relative\n"
"    \tto your home directory\n"
"      -p\tprint the directory stack with one entry per line\n"
"      -v\tprint the directory stack with one entry per line prefixed\n"
"    \twith its position in the stack\n"
"    \n"
"    Arguments:\n"
"      +N\tDisplays the Nth entry counting from the left of the list shown "
"by\n"
"    \tdirs when invoked without options, starting with zero.\n"
"    \n"
"      -N\tDisplays the Nth entry counting from the right of the list shown "
"by\n"
"\tdirs when invoked without options, starting with zero."
msgstr ""
"Mostra a lista de directorios actualmente gravados.  Os directorios\n"
"    gárdanse na lista coa orde `pushd'; pode ir saíndo da\n"
"    lista coa orde `popd'.\n"
"    \n"
"    Opcións:\n"
"      -c\tlimpa a pila de directorios, eliminando todos os elementos\n"
"      -l\tnon mostra as versións con prefixo de til dos directorios\n"
"    \trelativos ao seu directorio inicial\n"
"      -p\tmostra a pila de directorios cunha entrada por liña\n"
"      -v\tmuestra a pila de directorios cunha entrada por liña coa\n"
"    \tsúa posición na pila como prefixo\n"
"    \n"
"    Argumentos:\n"
"      +N\tMostra a N-ésima entrada contando desde a esquerda da\n"
"    \tlista mostrada por dirs cando se chama sen opcións,\n"
"    \tcomezando desde cero.\n"
"    \n"
"      -N\tMostra a N-ésima entrada contando desde a dereita da\n"
"\tlista mostrada por dirs cando se chama sen opcións,\n"
"\tcomezando desde cero."

#: builtins/pushd.def:711
msgid ""
"Adds a directory to the top of the directory stack, or rotates\n"
"    the stack, making the new top of the stack the current working\n"
"    directory.  With no arguments, exchanges the top two directories.\n"
"    \n"
"    Options:\n"
"      -n\tSuppresses the normal change of directory when adding\n"
"    \tdirectories to the stack, so only the stack is manipulated.\n"
"    \n"
"    Arguments:\n"
"      +N\tRotates the stack so that the Nth directory (counting\n"
"    \tfrom the left of the list shown by `dirs', starting with\n"
"    \tzero) is at the top.\n"
"    \n"
"      -N\tRotates the stack so that the Nth directory (counting\n"
"    \tfrom the right of the list shown by `dirs', starting with\n"
"    \tzero) is at the top.\n"
"    \n"
"      dir\tAdds DIR to the directory stack at the top, making it the\n"
"    \tnew current working directory.\n"
"    \n"
"    The `dirs' builtin displays the directory stack."
msgstr ""
"Engade un directorio ao tope da rima de directorios, ou rota\n"
"    a pila, facendo que o novo tope da rima sexa o\n"
"    directorio de trabajo actual.  Sen argumentos, intercambia\n"
"    os dous directorios do tope.\n"
"    \n"
"    Argumentos:\n"
"    +N\tRota a pila para que o N-ésimo directorio (contando\n"
"    \tda izquierda da lista mostrada por `dirs',\n"
"    \tcomezando desde cero) estea no tope.\n"
"    -N\tRota a pila para que o N-ésimo directorio (contando\n"
"    \tda derecha da lista mostrada por `dirs',\n"
"    \tcomezando desde cero) estea no tope.\n"
"    \n"
"     dir\tagrega DIR á rima de directorios no tope,\n"
"    \tfacéndoo o novo directorio de traballo actual.\n"
"    \n"
"    A orde interna `dirs' mostra a rima de directorios."

#: builtins/pushd.def:736
msgid ""
"Removes entries from the directory stack.  With no arguments, removes\n"
"    the top directory from the stack, and changes to the new top directory.\n"
"    \n"
"    Options:\n"
"      -n\tSuppresses the normal change of directory when removing\n"
"    \tdirectories from the stack, so only the stack is manipulated.\n"
"    \n"
"    Arguments:\n"
"      +N\tRemoves the Nth entry counting from the left of the list\n"
"    \tshown by `dirs', starting with zero.  For example: `popd +0'\n"
"    \tremoves the first directory, `popd +1' the second.\n"
"    \n"
"      -N\tRemoves the Nth entry counting from the right of the list\n"
"    \tshown by `dirs', starting with zero.  For example: `popd -0'\n"
"    \tremoves the last directory, `popd -1' the next to last.\n"
"    \n"
"    The `dirs' builtin displays the directory stack."
msgstr ""
"Borra entradas da pila de directorios.  Sen argumentos, borra\n"
"    directorio do tope da pila, e cambia ao novo directorio tope.\n"
"    \n"
"    Opcións:\n"
"      -n\tsuprime o cambio normal de directorio cando se borra\n"
"    \tdirectorios da pila, así só se manipula a pila.\n"
"    \n"
"    Argumentos:\n"
"      +N\tBorra a N-ésima entrada contando da esquerda da\n"
"    \tlista mostrada por `dirs', comenzando desde cero.\n"
"    \tPor exemplo: `popd +0' borra o primeiro directorio, `popd +1'\n"
"    \to segundo.\n"
"    \n"
"      -N\tBorra a N-ésima entrada contando da derecha da\n"
"    \tlista mostrada por `dirs', comezando desde cero.\n"
"    \tPor exemplo: `popd -0' borra o último directorio, `popd -1'\n"
"    \to penúltimo.\n"
"    \n"
"    A orde interna `dirs' mostra a pila de directorios."

#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: especificación de tempo de expiración non válida"

#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "erro de lectura: %d: %s"

#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr "só se pode usar «return» nunha función ou guión lido con «source»"

#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "non é posíbel borrar ao mesmo tempo unha función e unha variábel"

#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: non é posíbel borrar"

#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: non é posíbel borrar: %s é de só lectura"

#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: non é unha variábel de matriz"

#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: non é unha función"

#: builtins/shift.def:71 builtins/shift.def:77
msgid "shift count"
msgstr "conta de shift"

#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "non é posíbel activar e desactivar opcións do shell simultaneamente"

#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: nome de opción do shell non válido"

#: builtins/source.def:130
msgid "filename argument required"
msgstr "requírese un argumento de nome de ficheiro"

#: builtins/source.def:155
#, c-format
msgid "%s: file not found"
msgstr "%s: non se atopou o ficheiro"

#: builtins/suspend.def:101
msgid "cannot suspend"
msgstr "non é posíbel suspender"

#: builtins/suspend.def:111
msgid "cannot suspend a login shell"
msgstr "non é posíbel suspender un shell de entrada"

#: builtins/type.def:234
#, c-format
msgid "%s is aliased to `%s'\n"
msgstr "%s é un alias de `%s'\n"

#: builtins/type.def:255
#, c-format
msgid "%s is a shell keyword\n"
msgstr "%s é unha palabra chave do shell\n"

#: builtins/type.def:274
#, c-format
msgid "%s is a function\n"
msgstr "%s é unha función\n"

#: builtins/type.def:296
#, c-format
msgid "%s is a shell builtin\n"
msgstr "%s é unha orde interna do shell\n"

#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s é %s\n"

#: builtins/type.def:337
#, c-format
msgid "%s is hashed (%s)\n"
msgstr "%s está asociado (%s)\n"

#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: límite de argumento non válido"

#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': orde errónea"

#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: non é posíbel obter o límite: %s"

#: builtins/ulimit.def:464
msgid "limit"
msgstr "límite"

#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: non é posíbel modificar o límite: %s"

#: builtins/umask.def:114
msgid "octal number"
msgstr "número octal"

#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "`%c': operador de modo simbólico non válido"

#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "`%c': carácter de modo simbólico non válido"

#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " liña "

#: error.c:165
#, c-format
msgid "last command: %s\n"
msgstr "última orde: %s\n"

#: error.c:173
#, c-format
msgid "Aborting..."
msgstr "Abortando…"

#: error.c:440
msgid "unknown command error"
msgstr "erro de orde descoñecido"

#: error.c:441
msgid "bad command type"
msgstr "tipo de orde erróneo"

#: error.c:442
msgid "bad connector"
msgstr "conector erróneo"

#: error.c:443
msgid "bad jump"
msgstr "salto erróneo"

#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: variable sen asignar"

#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\aexpirou mentres agardaba algunha entrada: auto-logout\n"

#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "non é posíbel redirixir a saída estándar desde /dev/null: %s"

#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: `%c': carácter de formato non válido"

#: execute_cmd.c:2287
msgid "pipe error"
msgstr "erro de canalización"

#: execute_cmd.c:4386
#, c-format
msgid "%s: maximum function nesting level exceeded (%d)"
msgstr ""

#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: restrinxido: non se pode especificar `/' en nomes de ordes"

#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: non se atopou a orde"

#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr "%s: %s"

#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: intérprete erróneo"

#: execute_cmd.c:5280
#, fuzzy, c-format
msgid "%s: cannot execute binary file: %s"
msgstr "%s: non é posíbel executar o ficheiro binario"

#: execute_cmd.c:5352
#, fuzzy, c-format
msgid "`%s': is a special builtin"
msgstr "%s é unha orde interna do shell\n"

#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "no se pode duplicar o df %d ao df %d"

#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "excedeuse o nivel de recursión da expresión"

#: expr.c:283
msgid "recursion stack underflow"
msgstr "desbordamento da base da pila de recursión"

#: expr.c:431
msgid "syntax error in expression"
msgstr "erro de sintaxe na expresión"

#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "tentouse asignar a algo que non é unha variábel"

#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "división entre 0"

#: expr.c:542
msgid "bug: bad expassign token"
msgstr "erro: elemento de asignación de expresión erróneo"

#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "agardábase `:' para a expresión condicional"

#: expr.c:919
msgid "exponent less than 0"
msgstr "expoñente menor que 0"

#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
"agardábase un identificador despois do pre-incremento ou pre-decremento"

#: expr.c:1002
msgid "missing `)'"
msgstr "falta un `)'"

#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "erro de sintaxe: agardábase un operando"

#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "erro de sintaxe: operador aritmético non válido"

#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (o elemento de erro é \"%s\")"

#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "base aritmética non válida"

#: expr.c:1494
msgid "value too great for base"
msgstr "valor demasiado grande para a base"

#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: erro de expresión\n"

#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: non é posíbel acceder aos directorios pai"

#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "non é posíbel restabelecer o modo nodelay para o df %d"

#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
"non é posíbel asignar un novo descritor de ficheiros para a entrada de bash "
"desde o fd %d"

#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr ""
"save_bash_input: o almacenamento intermedio xa existe para o novo fd %d"

#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: tubería de pgrp"

#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "o pid `forked' %d aparece no traballo en execución %d"

#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "borrando o trabajo detido %d con grupo de proceso %ld"

#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: o proceso %5ld (%s) en the_pipeline"

#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: pid %5ld (%s) márcase como vivo aínda"

#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: non existe tal pid"

#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Sinal %d"

#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Feito"

#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Detido"

#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Detido(%s)"

#: jobs.c:1477
msgid "Running"
msgstr "En execución"

#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Feito(%d)"

#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Saída %d"

#: jobs.c:1496
msgid "Unknown status"
msgstr "Estado descoñecido"

#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(«core» xerado) "

#: jobs.c:1602
#, c-format
msgid "  (wd: %s)"
msgstr "  (dir agora: %s)"

#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "setpgid fillo (%ld a %ld)"

#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: pid %ld non é un proceso fillo desta shell"

#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Non hai un rexistro do proceso %ld"

#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: o traballo %d está detido"

#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: o traballo rematou"

#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: o trabajo %d xa está en segundo plano"

#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: actívase WNOHANG para evitar o bloque indefinido"

#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: liña %d: "

#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " («core» generado)"

#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(dir agora: %s)\n"

#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_jobs_control: fallou getpgrp"

#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_jobs_control: disciplina de liña"

#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_jobs_control: setpgid"

#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "non é posíbel estabelecer o grupo de procesos de terminal (%d)"

#: jobs.c:3888
msgid "no job control in this shell"
msgstr "non hai control de trabalos nesta shell"

#: lib/malloc/malloc.c:296
#, c-format
msgid "malloc: failed assertion: %s\n"
msgstr "malloc: fallou a aserción: %s\n"

#: lib/malloc/malloc.c:312
#, c-format
msgid ""
"\r\n"
"malloc: %s:%d: assertion botched\r\n"
msgstr ""
"\r\n"
"malloc: %s:%d: aserción arruinada\r\n"

#: lib/malloc/malloc.c:313
msgid "unknown"
msgstr "descoñecido"

#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: bloque na lista libre sobreescrito"

#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: chamouse cun argumento de bloque previamente liberado"

#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: chamouse cun argumento de bloque sen asignar"

#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"

#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: os tamaños dos anacos de inicio e fin son diferentes"

#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: chamouse cun argumento de bloque sen asignar"

#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
"realloc: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"

#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: os tamaños dos anacos de inicio e fin son diferentes"

#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr "register_alloc: a táboa alloc está chea con FIND_ALLOC?\n"

#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr "register_alloc: %p xa está na táboa como asignado?\n"

#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: %p xa está na táboa como libre?\n"

#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "base non válida"

#: lib/sh/netopen.c:168
#, c-format
msgid "%s: host unknown"
msgstr "%s: anfitrión descoñecido"

#: lib/sh/netopen.c:175
#, c-format
msgid "%s: invalid service"
msgstr "%s: servizo non válido"

#: lib/sh/netopen.c:306
#, c-format
msgid "%s: bad network path specification"
msgstr "%s: especificación de ruta de rede errónea"

#: lib/sh/netopen.c:346
msgid "network operations not supported"
msgstr "non hai compatibilidade para operacións de rede"

#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL non se pode cambiar a configuración rexional (%s)"

#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
"setlocale: LC_ALL: non se pode cambiar a configuración rexional (%s): %s"

#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s)"

#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s): %s"

#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Ten mensaxes en $_"

#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Ten unha nova mensaxe en $_"

#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "O correo en %s foi lido\n"

#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
msgstr "error de sintaxe: requírese unha expresión aritmética"

#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
msgstr "error sintáctico: `;' non esperado"

#: make_cmd.c:326
#, c-format
msgid "syntax error: `((%s))'"
msgstr "erro de sintaxe: `((%s))'"

#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: tipo de instrución %d erróneo"

#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
"o documento-aquí na liña %d está delimitado por fin-de-fichero (agardábase `"
"%s')"

#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: a instrucción de redirección `%d' está fóra de rango"

#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "EOF inesperado mentres se buscaba un `%c' coincidente"

#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "EOF inesperado mentres se buscaba `]]'"

#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "error de sintaxe na expresión condicional: elemento inesperado `%s'"

#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "error sintáctico na expresión condicional"

#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "elemento inesperado `%s', agardábase `)'"

#: parse.y:4261
msgid "expected `)'"
msgstr "agardábase `)'"

#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "argumento inesperado `%s' para o operador unario condicional"

#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "argumento inesperado para o operador unario condicional"

#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "elemento inesperado `%s', agardábase un operador binario condicional"

#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "agardábase un operador binario condicional"

#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "argumento inesperado `%s' para o operador binario condicional"

#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "argumento inesperado para o operador binario condicional"

#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "elemento inesperado `%c' na orde condicional"

#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "elemento inesperado `%s' na orde condicional"

#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "elemento inesperado %d na orde condicional"

#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "error de sintaxe perto do elemento inesperado `%s'"

#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "erro de sintaxe cerca de «%s»"

#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "error de sintaxe: non se agardaba o final do fichero"

#: parse.y:5765
msgid "syntax error"
msgstr "erro de sintaxe"

#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Use «%s» para deixar o shell.\n"

#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "EOF non agardado mentres se buscaba un «)» coincidente"

#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion: non se atopa a función `%s'"

#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: COMPSPEC nulo"

#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: conector erróneo `%d'"

#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: descriptor de fichero non válido"

#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: punteiro a ficheiro NULL"

#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != numfich xtrace fp (%d)"

#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: `%c': carácter de formato non válido"

#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "descritor de ficheiro fóra de rango"

#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: redireccionamento ambigüo"

#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: non se pode sobreescribir un fichero existente"

#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: restrinxido: no se pode redirixir a saída"

#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "non se pode crear un fichero temporal para o documento-aquí: %s"

#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: non é posíbel asignar o gd á variábel"

#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "non se admite /dev/(tcp|udp)/anfitrion/porto sen rede"

#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "erro de redirección: non é posíbel duplicar o fd"

#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "non é posíbel atopar /tmp, por favor creeo!"

#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp debe ser un nome de directorio válido"

#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: opción non válida"

#: shell.c:1682
msgid "I have no name!"
msgstr "Non teño nome!"

#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, versión %s-(%s)\n"

#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
"\t%s [GNU long option] [option] script-file ...\n"
msgstr ""
"Uso:\t%s [opción GNU longa] [opción] ...\n"
"\t%s [opción GNU longa] [opción] guión-do-shell\n"

#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Opcións GNU longas:\n"

#: shell.c:1834
msgid "Shell options:\n"
msgstr "Opcións do shell:\n"

#: shell.c:1835
#, fuzzy
msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr "\t-irsD o -c orde ou -O opcion_shopt\t\t(só invocación)\n"

#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s ou -o opción\n"

#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
"Escriba `%s -c \"help set\"' para máis información sobre as opcións do "
"shell.\n"

#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
"Escriba `%s -c help' para máis información sobre as ordes internas do "
"shell.\n"

#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Use a orden `bashbug' para reportar erros.\n"

#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: operación non válida"

#: siglist.c:48
msgid "Bogus signal"
msgstr "Sinal ambigüa"

#: siglist.c:51
msgid "Hangup"
msgstr "Colgar"

#: siglist.c:55
msgid "Interrupt"
msgstr "Interromper"

#: siglist.c:59
msgid "Quit"
msgstr "Saír"

#: siglist.c:63
msgid "Illegal instruction"
msgstr "Instrución ilegal"

#: siglist.c:67
msgid "BPT trace/trap"
msgstr "BPT rastreo/captura"

#: siglist.c:75
msgid "ABORT instruction"
msgstr "instrución ABORT"

#: siglist.c:79
msgid "EMT instruction"
msgstr "instrución EMT"

#: siglist.c:83
msgid "Floating point exception"
msgstr "Excepción de coma flotante"

#: siglist.c:87
msgid "Killed"
msgstr "Matado"

#: siglist.c:91
msgid "Bus error"
msgstr "Erro no bus"

#: siglist.c:95
msgid "Segmentation fault"
msgstr "Violación de segmento"

#: siglist.c:99
msgid "Bad system call"
msgstr "Chamada ao sistema errónea"

#: siglist.c:103
msgid "Broken pipe"
msgstr "Tubería rota"

#: siglist.c:107
msgid "Alarm clock"
msgstr "Temporizador"

#: siglist.c:111
msgid "Terminated"
msgstr "Rematado"

#: siglist.c:115
msgid "Urgent IO condition"
msgstr "Condicón de E/s urxente"

#: siglist.c:119
msgid "Stopped (signal)"
msgstr "Detido (sinal)"

#: siglist.c:127
msgid "Continue"
msgstr "Continúa"

#: siglist.c:135
msgid "Child death or stop"
msgstr "O proceso fillo morreu ou está parado"

#: siglist.c:139
msgid "Stopped (tty input)"
msgstr "Detido (entrada pola terminal)"

#: siglist.c:143
msgid "Stopped (tty output)"
msgstr "Detido (saída pola terminal)"

#: siglist.c:147
msgid "I/O ready"
msgstr "E/S listas"

#: siglist.c:151
msgid "CPU limit"
msgstr "Límite de CPU"

#: siglist.c:155
msgid "File limit"
msgstr "Límite de ficheiros"

#: siglist.c:159
msgid "Alarm (virtual)"
msgstr "Alarma (virtual)"

#: siglist.c:163
msgid "Alarm (profile)"
msgstr "Alarma (contorno)"

#: siglist.c:167
msgid "Window changed"
msgstr "Xanela cambiada"

#: siglist.c:171
msgid "Record lock"
msgstr "Bloqueo de gravación"

#: siglist.c:175
msgid "User signal 1"
msgstr "Sinal de usuario 1"

#: siglist.c:179
msgid "User signal 2"
msgstr "Sinal de usuario 2"

#: siglist.c:183
msgid "HFT input data pending"
msgstr "entrada de datos HFT pendente"

#: siglist.c:187
msgid "power failure imminent"
msgstr "fallo de enerxía inminente"

#: siglist.c:191
msgid "system crash imminent"
msgstr "caída do sistema inminente"

#: siglist.c:195
msgid "migrate process to another CPU"
msgstr "migrando o proceso a outra CPU"

#: siglist.c:199
msgid "programming error"
msgstr "erro de programación"

#: siglist.c:203
msgid "HFT monitor mode granted"
msgstr "o modo monitor HFT foi concedido"

#: siglist.c:207
msgid "HFT monitor mode retracted"
msgstr "o modo monitor HTF foi retirado"

#: siglist.c:211
msgid "HFT sound sequence has completed"
msgstr "a secuencia de son HFT foi completada"

#: siglist.c:215
msgid "Information request"
msgstr "Solicitude de información"

#: siglist.c:223
msgid "Unknown Signal #"
msgstr "Sinal descoñecido #"

#: siglist.c:225
#, c-format
msgid "Unknown Signal #%d"
msgstr "Sinal descoñecido #%d"

#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "susbtitución errónea: non hai un `%s' que peche en %s"

#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: no é posíbel asignar unha lista a un membro da matriz"

#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "non é posíbel crear a tubería para a sustitución do proceso"

#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "non é posíbel crear un proceso fillo para a substitución do proceso"

#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "non é posíbel abrir a tubería chamada %s para lectura"

#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "non é posíbel abrir a tubería chamada %s para escritura"

#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "non é posíbel duplicar a tubería chamada %s como df %d"

#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "non é posíble crear a tubería para a substitución da orde"

#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "non é posíbel crear un proceso fillo para a substitución da orde"

#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: non é posíbel duplicar a tubería como fd 1"

#: subst.c:5837 subst.c:8050
#, fuzzy, c-format
msgid "%s: invalid variable name for name reference"
msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"

#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parámetro nulo ou non estabelecido"

#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: expresión de subcadea < 0"

#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: substitución errónea"

#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: non é posíbel asignar de esta forma"

#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
"versiones futuras do intérprete obligarán a evaluación como unha "
"substitución aritmética"

#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "substitución errónea: non hai unha \"`\" que peche en %s"

#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "non hai concidencia: %s"

#: test.c:147
msgid "argument expected"
msgstr "agardábase un argumento"

#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: agardábase unha expresión enteira"

#: test.c:264
msgid "`)' expected"
msgstr "agardábase `)'"

#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "`)' agardábase, atopouse %s"

#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: agardábase un operador unario"

#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: agardábase un operador binario"

#: test.c:860
msgid "missing `]'"
msgstr "falta un «]»"

#: trap.c:217
msgid "invalid signal number"
msgstr "número de sinal non válido"

#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p"

#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
"run_pending_traps: o manexador de sinal é SIG_DFL, reenviando %d (%s) a sí "
"mesmo"

#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: sinal errónea %d"

#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "erro ao importar a definición da función para «%s»"

#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "o nivel de shell (%d) é demasiado alto, restabelécese a 1"

#: variables.c:1865
#, fuzzy, c-format
msgid "%s: circular name reference"
msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"

#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: non hai contexto de función no ámbito actual"

#: variables.c:2247
#, fuzzy, c-format
msgid "%s: variable may not be assigned value"
msgstr "%s: non é posíbel asignar o gd á variábel"

#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: non hai contexto de función no ámbito actual"

#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s ten exportstr nulo"

#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "carácter non válido %d en exportsrt para %s"

#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "non hai «=» en exportstr para %s"

#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
"pop_var_context: a cabezak de shell_variables non é un contexto de función"

#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: non é un contexto global_variables "

#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
"pop_scope: a cabeza de shell_variables non é un ámbito de ambiente temporal"

#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: non é posíbel abrir como FICHEIRO"

#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"

#: variables.c:5307
#, fuzzy, c-format
msgid "%s: %s: compatibility value out of range"
msgstr "%s: %s fóra de rango"

#: version.c:46
#, fuzzy
msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr "Copyright (C) 2011 Free Software Foundation, Inc."

#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
"Licenza GPLv3+: GPL de GNU versión 3 ou posterior <http://gnu.org/licenses/"
"gpl.html>\n"

#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, versión %s (%s)\n"

#: version.c:91 version2.c:91
#, fuzzy
msgid "This is free software; you are free to change and redistribute it."
msgstr "Isto é software libre; vostede é libre de cambialo e redistribuilo.\n"

#: version.c:92 version2.c:92
#, fuzzy
msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr "Non hai GARANTÍA, á extensión permitida pola ley.\n"

#: version2.c:46
#, fuzzy
msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr "Copyright (C) 2011 Free Software Foundation, Inc."

#: xmalloc.c:91
#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
msgstr "%s: non é posíbel asignar %lu bytes (%lu bytes asignados)"

#: xmalloc.c:93
#, c-format
msgid "%s: cannot allocate %lu bytes"
msgstr "%s: non é posíbel asignar %lu bytes"

#: xmalloc.c:163
#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
msgstr "%s: %s:%d: non é posíbel asignar %lu bytes (%lu bytes asignados)"

#: xmalloc.c:165
#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
msgstr "%s: %s:%d: non é posíbel asignar %lu bytes"

#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
msgstr "alias [-p] [nome[=valor] ... ]"

#: builtins.c:47
msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] nome [nome ...]"

#: builtins.c:51
#, fuzzy
msgid ""
"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
"bind [-lpvsPVS] [-m comb_teclas] [-f ficheiro] [-q nome] [-u nome] [-r "
"secteclas] [-x secteclas:orde-shell] [keyseq:función-readline ou función-"
"readline]"

#: builtins.c:54
msgid "break [n]"
msgstr "break [n]"

#: builtins.c:56
msgid "continue [n]"
msgstr "continue [n]"

#: builtins.c:58
msgid "builtin [shell-builtin [arg ...]]"
msgstr "builtin [orde-interna-shell [arg ...]]"

#: builtins.c:61
msgid "caller [expr]"
msgstr "caller [expresión]"

#: builtins.c:64
#, fuzzy
msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-L|[-P [-e]]] [directorio]"

#: builtins.c:66
msgid "pwd [-LP]"
msgstr "pwd [-LP]"

#: builtins.c:68
msgid ":"
msgstr ":"

#: builtins.c:70
msgid "true"
msgstr "true"

#: builtins.c:72
msgid "false"
msgstr "false"

#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] orde [arg ...]"

#: builtins.c:76
#, fuzzy
msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-aAfFgilrtux] [-p] [nome[=valor] ...]"

#: builtins.c:78
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
msgstr "typeset [-aAfFgilrtux] [-p] nome[=valor] ..."

#: builtins.c:80
msgid "local [option] name[=value] ..."
msgstr "local [option] nome[=valor] ..."

#: builtins.c:83
msgid "echo [-neE] [arg ...]"
msgstr "echo [-neE] [arg ...]"

#: builtins.c:87
msgid "echo [-n] [arg ...]"
msgstr "echo [-n] [arg ...]"

#: builtins.c:90
msgid "enable [-a] [-dnps] [-f filename] [name ...]"
msgstr "enable [-a] [-dnps] [-f nomeficheiro] [nome ...]"

#: builtins.c:92
msgid "eval [arg ...]"
msgstr "eval [arg ...]"

#: builtins.c:94
msgid "getopts optstring name [arg]"
msgstr "getopts cadena_opcións nome [arg]"

#: builtins.c:96
msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
msgstr "exec [-cl] [-a ome] [orde [argumentos ...]] [redirección ...]"

#: builtins.c:98
msgid "exit [n]"
msgstr "exit [n]"

#: builtins.c:100
msgid "logout [n]"
msgstr "logout [n]"

#: builtins.c:103
msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
msgstr "fc [-e nome_e] [-lnr] [primeiro] [último] ou fc -s [pat=rep] [orde]"

#: builtins.c:107
msgid "fg [job_spec]"
msgstr "fg [id_traballo]"

#: builtins.c:111
msgid "bg [job_spec ...]"
msgstr "bg [id_traballo ...]"

#: builtins.c:114
msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
msgstr "hash [-lr] [-p ruta] [-dt] [nome ...]"

#: builtins.c:117
msgid "help [-dms] [pattern ...]"
msgstr "help [-dms] [patrón ...]"

#: builtins.c:121
msgid ""
"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
"[arg...]"
msgstr ""
"history [-c] [-d desprazamento] [n] ou history -anrw [ficheiro] ou history -"
"ps arg [arg...]"

#: builtins.c:125
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
msgstr "jobs [-lnprs] [idtraballo ...] ou jobs -x orde [args]"

#: builtins.c:129
msgid "disown [-h] [-ar] [jobspec ...]"
msgstr "disown [-h] [-ar] [id_traballo ...]"

#: builtins.c:132
msgid ""
"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
"[sigspec]"
msgstr ""
"kill [-s id_sinal | -n num_sinal | -id_sinal] pid | id_traballo ... ou kill -"
"l [id_sinal]"

#: builtins.c:134
msgid "let arg [arg ...]"
msgstr "let arg [arg ...]"

#: builtins.c:136
msgid ""
"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
"prompt] [-t timeout] [-u fd] [name ...]"
msgstr ""
"read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p "
"prompt] [-t timeout] [-u fd] [nome ...]"

#: builtins.c:138
msgid "return [n]"
msgstr "return [n]"

#: builtins.c:140
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [-abefhkmnptuvxBCHP] [-o nome-opción] [--] [arg ...]"

#: builtins.c:142
#, fuzzy
msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [nome ...]"

#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [nome[=valor] ...] ou export -p"

#: builtins.c:146
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
msgstr "readonly [-aAf] [nome[=valor] ...] ou readonly -p"

#: builtins.c:148
msgid "shift [n]"
msgstr "shift [n]"

#: builtins.c:150
msgid "source filename [arguments]"
msgstr "source ficheiro [arguments]"

#: builtins.c:152
msgid ". filename [arguments]"
msgstr ". ficheiro [argumentos]"

#: builtins.c:155
msgid "suspend [-f]"
msgstr "suspend [-f]"

#: builtins.c:158
msgid "test [expr]"
msgstr "test [expresión]"

#: builtins.c:160
msgid "[ arg... ]"
msgstr "[ arg... ]"

#: builtins.c:162
msgid "times"
msgstr "times"

#: builtins.c:164
msgid "trap [-lp] [[arg] signal_spec ...]"
msgstr "trap [-lp] [[arg] id_sinal ...]"

#: builtins.c:166
msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] nome [nome ...]"

#: builtins.c:169
#, fuzzy
msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]"

#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [modo]"

#: builtins.c:175
#, fuzzy
msgid "wait [-n] [id ...]"
msgstr "wait [id]"

#: builtins.c:179
#, fuzzy
msgid "wait [pid ...]"
msgstr "wait [id]"

#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
msgstr "for NOME [in PALABRAS ... ] ; do ORDES; done"

#: builtins.c:184
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
msgstr "for (( exp1; exp2; exp3 )); do ORDES; done"

#: builtins.c:186
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
msgstr "select NOME [in PALABRAS ... ;] do ORDES; done"

#: builtins.c:188
msgid "time [-p] pipeline"
msgstr "time [-p] pipeline"

#: builtins.c:190
msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) ORDES ;;]... esac"

#: builtins.c:192
msgid ""
"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
"COMMANDS; ] fi"
msgstr "if ORDES; then ORDES; [ elif ORDES; then ORDES; ]...[ else ORDES; ] fi"

#: builtins.c:194
msgid "while COMMANDS; do COMMANDS; done"
msgstr "while ORDES; do ORDES; done"

#: builtins.c:196
msgid "until COMMANDS; do COMMANDS; done"
msgstr "until ORDES; do ORDES; done"

#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
msgstr "coproc [NOME] orden [redireccións]"

#: builtins.c:200
msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
msgstr "function nome { ORDES ; } ou nome () { ORDES ; }"

#: builtins.c:202
msgid "{ COMMANDS ; }"
msgstr "{ ORDES ; }"

#: builtins.c:204
msgid "job_spec [&]"
msgstr "job_spec [&]"

#: builtins.c:206
msgid "(( expression ))"
msgstr "(( expresión ))"

#: builtins.c:208
msgid "[[ expression ]]"
msgstr "[[ expresión ]]"

#: builtins.c:210
msgid "variables - Names and meanings of some shell variables"
msgstr "variables - Nomes e significados de algunhas variábeis de shell"

#: builtins.c:213
msgid "pushd [-n] [+N | -N | dir]"
msgstr "pushd [-n] [+N | -N | dir]"

#: builtins.c:217
msgid "popd [-n] [+N | -N]"
msgstr "popd [-n] [+N | -N]"

#: builtins.c:221
msgid "dirs [-clpv] [+N] [-N]"
msgstr "dirs [-clpv] [+N] [-N]"

#: builtins.c:224
msgid "shopt [-pqsu] [-o] [optname ...]"
msgstr "shopt [-pqsu] [-o] [nome_opción ...]"

#: builtins.c:226
msgid "printf [-v var] format [arguments]"
msgstr "printf [-v var] formato [argumentos]"

#: builtins.c:229
msgid ""
"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
"suffix] [name ...]"
msgstr ""
"complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-"
"W listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S "
"sufixo] [nome ...]"

#: builtins.c:233
msgid ""
"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
msgstr ""
"compgen [-abcdefgjksuv] [-o opción]  [-A acción] [-G patglob] [-W "
"listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S "
"sufixo] [palabra]"

#: builtins.c:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
msgstr "compopt [-o|+o opción] [-DE] [nome ...]"

#: builtins.c:240
msgid ""
"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
"mapfile [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c "
"quantum] [matriz]"

#: builtins.c:242
msgid ""
"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
"readarray [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c "
"quantum] [matriz]"

#: builtins.c:254
msgid ""
"Define or display aliases.\n"
"    \n"
"    Without arguments, `alias' prints the list of aliases in the reusable\n"
"    form `alias NAME=VALUE' on standard output.\n"
"    \n"
"    Otherwise, an alias is defined for each NAME whose VALUE is given.\n"
"    A trailing space in VALUE causes the next word to be checked for\n"
"    alias substitution when the alias is expanded.\n"
"    \n"
"    Options:\n"
"      -p\tPrint all defined aliases in a reusable format\n"
"    \n"
"    Exit Status:\n"
"    alias returns true unless a NAME is supplied for which no alias has "
"been\n"
"    defined."
msgstr ""
"Define ou mostra aliases.\n"
"    \n"
"    `alias' sen argumentos mostra a lista de aliases na forma\n"
"    reutilizábel `alias NOMBRE=VALOR' na saída estándar.\n"
"    \n"
"    De outra maneira, defínese un alias por cada NOME cuxo VALOR se\n"
"    forneza.  Un espazo final en VALOR causa que se revise\n"
"    a seguinte palabra para substitución de alias cando se expande\n"
"    o alias.\n"
"    \n"
"    Opciones:\n"
"      -p\tMuestra todos los aliases definidos en un formato reusable\n"
"    \n"
"    Estado de salida:\n"
"    alias devuelve verdadero a menos que se de un NOMBRE para el cual\n"
"    no se haya definido ningún alias."

#: builtins.c:276
msgid ""
"Remove each NAME from the list of defined aliases.\n"
"    \n"
"    Options:\n"
"      -a\tremove all alias definitions.\n"
"    \n"
"    Return success unless a NAME is not an existing alias."
msgstr ""
"Borra cada NOME da lista de alias definidos.\n"
"    \n"
"    Opcións:\n"
"      -a\telimina todas as definicións de alias.\n"
"    Devovle verdadero a menos que un NOME non sexa un alias existente."

#: builtins.c:289
#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
"    \n"
"    Bind a key sequence to a Readline function or a macro, or set a\n"
"    Readline variable.  The non-option argument syntax is equivalent to\n"
"    that found in ~/.inputrc, but must be passed as a single argument:\n"
"    e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
"    \n"
"    Options:\n"
"      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
"                         command.  Acceptable keymap names are emacs,\n"
"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
"move,\n"
"                         vi-command, and vi-insert.\n"
"      -l                 List names of functions.\n"
"      -P                 List function names and bindings.\n"
"      -p                 List functions and bindings in a form that can be\n"
"                         reused as input.\n"
"      -S                 List key sequences that invoke macros and their "
"values\n"
"      -s                 List key sequences that invoke macros and their "
"values\n"
"                         in a form that can be reused as input.\n"
"      -V                 List variable names and values\n"
"      -v                 List variable names and values in a form that can\n"
"                         be reused as input.\n"
"      -q  function-name  Query about which keys invoke the named function.\n"
"      -u  function-name  Unbind all keys which are bound to the named "
"function.\n"
"      -r  keyseq         Remove the binding for KEYSEQ.\n"
"      -f  filename       Read key bindings from FILENAME.\n"
"      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
"    \t\t\t\tKEYSEQ is entered.\n"
"      -X\t\t     List key sequences bound with -x and associated commands\n"
"                         in a form that can be reused as input.\n"
"    \n"
"    Exit Status:\n"
"    bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
"Estabelece secuencias de teclas Readline e variábeis.\n"
"\n"
"    Asigna unha secuencia de teclas a unha función Readline ou a unha macro, "
"ou\n"
"    estabelece unha variábel Readline.  A sintaxe dos argumentos que\n"
"    non son opcións é equivalente á que se encontra en ~/.inputrc,\n"
"    pero débese pasar como un só argumento:\n"
"    p.e., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
"    \n"
"    opcións:\n"
"    \n"
"      -m  comb_teclas    Usa COMB_TECLAS como a combinación de teclas pola\n"
"                         duración desta orde.  Os nomes de combinacións\n"
"                         de teclas aceptábeis son emacs, emacs-standard,\n"
"                         emacs-meta, emacs-ctlx, vi, vi-move, vi-command e\n"
"                         vi-insert.\n"
"      -l                 Enlista os nomes das funcións.\n"
"      -P                 Enlista os nomes das funcións e asignacións.\n"
"      -p                 Enlista as funcións e asignacións nunha forma que\n"
"                         se pode reusar como entrada.\n"
"      -S                 Enlista as secuencias de teclas que invocan macros\n"
"                         e os seus valores.\n"
"      -s                 Enlista as secuencias de teclas que invocan macros\n"
"                         e os seus valores nunha forma que se poden reusar "
"como\n"
"                         entrada.\n"
"      -V                 Enlista os nomes de variábeis e valores.\n"
"      -v                 Enlista os nomes de variábeis e valores nunha\n"
"                         forma que se pode reusar como entrada.\n"
"      -q nome-funcion    Pregunta qué teclas invocan a función nomeada.\n"
"      -u nome-función    Borra todas as teclas que están ligadas\n"
"                         á función nomeada.\n"
"      -r secteclas       Borra a asignación para a SECTECLAS.\n"
"      -f fichero         Lee as asignacións de teclas do FICHERO.\n"
"      -x secteclas:orde-shell\tCausa que se execute a ORDE-SHELL cando\n"
"    \t\t\t\tse introduce a SECTECLAS.\n"
"    \n"
"    Estado de saída:\n"
"    bind devolve 0 a menos que se presente unha opción descoñecida ou se\n"
"    se produza un erro."

#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
"    \n"
"    Exit a FOR, WHILE or UNTIL loop.  If N is specified, break N enclosing\n"
"    loops.\n"
"    \n"
"    Exit Status:\n"
"    The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
"Termina ciclos for, while o until.\n"
"    \n"
"    Termina un ciclo FOR, WHILE o UNTIL.  Se se especifica N, remata\n"
"    N ciclos anidados.\n"
"    \n"
"    Estado de saída:\n"
"    O estado de saída é 0 a menos que N non sexa maior ou igual a 1."

#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
"    \n"
"    Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n"
"    If N is specified, resumes the Nth enclosing loop.\n"
"    \n"
"    Exit Status:\n"
"    The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
"Continúa iteracións for, while o until\n"
"    \n"
"    Continúa a seguinte iteración do ciclo FOR, WHILE ou UNTIL\n"
"    circundante.  Se se especifica N, retoma no N-ésimo ciclo circundante.\n"
"    \n"
"    Estado de Saída:\n"
"    O estado de salida é 0 a menos que N non sexa maior ou igual a 1."

#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
"    \n"
"    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
"    lookup.  This is useful when you wish to reimplement a shell builtin\n"
"    as a shell function, but need to execute the builtin within the "
"function.\n"
"    \n"
"    Exit Status:\n"
"    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
"    not a shell builtin.."
msgstr ""
"Executa ordes internas do shell\n"
"    \n"
"    Executa a ORDEN-INTERNA-SHELL cos argumentos ARGs sen realizar\n"
"    a busca interna de ordes.  Isto é útil cando desexa reimplementar\n"
"    unha orde interna do shell como unha función de shell, pero necesita\n"
"    executar a orde interna dentro da función.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado de saída da ORDE-INTERNA-SHELL, ou falso se a\n"
"    ORDE-INTERNA-SHELL non é unha orde interna de shell."

#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
"    \n"
"    Without EXPR, returns \"$line $filename\".  With EXPR, returns\n"
"    \"$line $subroutine $filename\"; this extra information can be used to\n"
"    provide a stack trace.\n"
"    \n"
"    The value of EXPR indicates how many call frames to go back before the\n"
"    current one; the top frame is frame 0.\n"
"    \n"
"    Exit Status:\n"
"    Returns 0 unless the shell is not executing a shell function or EXPR\n"
"    is invalid."
msgstr ""
"Devolve o contexto da chamada a subrutina actual.\n"
"    \n"
"    Sen EXPR, devolve \"$liña $nomeficheiro\".  Con EXPR, devolve\n"
"    \"$liña $subrutina $nomeficheiro\"; esta información adicional\n"
"    pódese usar para fornecer un volcado de pila.\n"
"    \n"
"    O valor de EXPR indica cantos marcos de chamada se debe retroceder\n"
"    antes do actual; o marco inicial é o marco 0.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve 0 a menos que o shell non estea executando unha función de "
"shell\n"
"    ou EXPR sexa non válida."

#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
"    \n"
"    Change the current directory to DIR.  The default DIR is the value of "
"the\n"
"    HOME shell variable.\n"
"    \n"
"    The variable CDPATH defines the search path for the directory "
"containing\n"
"    DIR.  Alternative directory names in CDPATH are separated by a colon "
"(:).\n"
"    A null directory name is the same as the current directory.  If DIR "
"begins\n"
"    with a slash (/), then CDPATH is not used.\n"
"    \n"
"    If the directory is not found, and the shell option `cdable_vars' is "
"set,\n"
"    the word is assumed to be  a variable name.  If that variable has a "
"value,\n"
"    its value is used for DIR.\n"
"    \n"
"    Options:\n"
"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
"    \tDIR after processing instances of `..'\n"
"        -P\tuse the physical directory structure without following symbolic\n"
"    \tlinks: resolve symbolic links in DIR before processing instances\n"
"    \tof `..'\n"
"        -e\tif the -P option is supplied, and the current working directory\n"
"    \tcannot be determined successfully, exit with a non-zero status\n"
"        -@  on systems that support it, present a file with extended "
"attributes\n"
"            as a directory containing the file attributes\n"
"    \n"
"    The default is to follow symbolic links, as if `-L' were specified.\n"
"    `..' is processed by removing the immediately previous pathname "
"component\n"
"    back to a slash or the beginning of DIR.\n"
"    \n"
"    Exit Status:\n"
"    Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
"    -P is used; non-zero otherwise."
msgstr ""

#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
"    \n"
"    Options:\n"
"      -L\tprint the value of $PWD if it names the current working\n"
"    \tdirectory\n"
"      -P\tprint the physical directory, without any symbolic links\n"
"    \n"
"    By default, `pwd' behaves as if `-L' were specified.\n"
"    \n"
"    Exit Status:\n"
"    Returns 0 unless an invalid option is given or the current directory\n"
"    cannot be read."
msgstr ""
"Mostra o nome do directorio de traballo actual.\n"
"    \n"
"    Opcións:\n"
"      -L\tmostra o valor de $PWD se nomea ao directorio de\n"
"    \ttraballo actual\n"
"      -P\tmostra o directorio físico, sen ligazóns simbólicas\n"
"    \n"
"    Por defecto, `pwd' comportase como se se especificara `-L'.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve 0 a menos que se dea unha opción non válida ou non se poida "
"leer\n"
"    o directorio actual."

#: builtins.c:439
msgid ""
"Null command.\n"
"    \n"
"    No effect; the command does nothing.\n"
"    \n"
"    Exit Status:\n"
"    Always succeeds."
msgstr ""
"Orde nula.\n"
"    \n"
"    Sen efecto; a orde non fai nada.\n"
"    \n"
"    Estado de Saída:\n"
"    Sempre con éxito."

#: builtins.c:450
msgid ""
"Return a successful result.\n"
"    \n"
"    Exit Status:\n"
"    Always succeeds."
msgstr ""
"Devolve un resultado con éxito.\n"
"    \n"
"    Estado de salida:\n"
"    Sempre con éxito."

#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
"    \n"
"    Exit Status:\n"
"    Always fails."
msgstr ""
"Devolve un resultado sen éxito.\n"
"    \n"
"    Estado de saída:\n"
"    Sempre falla."

#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
"    \n"
"    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
"    information about the specified COMMANDs.  Can be used to invoke "
"commands\n"
"    on disk when a function with the same name exists.\n"
"    \n"
"    Options:\n"
"      -p\tuse a default value for PATH that is guaranteed to find all of\n"
"    \tthe standard utilities\n"
"      -v\tprint a description of COMMAND similar to the `type' builtin\n"
"      -V\tprint a more verbose description of each COMMAND\n"
"    \n"
"    Exit Status:\n"
"    Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""

#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
"    \n"
"    Declare variables and give them attributes.  If no NAMEs are given,\n"
"    display the attributes and values of all variables.\n"
"    \n"
"    Options:\n"
"      -f\trestrict action or display to function names and definitions\n"
"      -F\trestrict display to function names only (plus line number and\n"
"    \tsource file when debugging)\n"
"      -g\tcreate global variables when used in a shell function; otherwise\n"
"    \tignored\n"
"      -p\tdisplay the attributes and value of each NAME\n"
"    \n"
"    Options which set attributes:\n"
"      -a\tto make NAMEs indexed arrays (if supported)\n"
"      -A\tto make NAMEs associative arrays (if supported)\n"
"      -i\tto make NAMEs have the `integer' attribute\n"
"      -l\tto convert NAMEs to lower case on assignment\n"
"      -n\tmake NAME a reference to the variable named by its value\n"
"      -r\tto make NAMEs readonly\n"
"      -t\tto make NAMEs have the `trace' attribute\n"
"      -u\tto convert NAMEs to upper case on assignment\n"
"      -x\tto make NAMEs export\n"
"    \n"
"    Using `+' instead of `-' turns off the given attribute.\n"
"    \n"
"    Variables with the integer attribute have arithmetic evaluation (see\n"
"    the `let' command) performed when the variable is assigned a value.\n"
"    \n"
"    When used in a function, `declare' makes NAMEs local, as with the "
"`local'\n"
"    command.  The `-g' option suppresses this behavior.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is supplied or a variable\n"
"    assignment error occurs."
msgstr ""

#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
"    \n"
"    Obsolete.  See `help declare'."
msgstr ""
"Estabelece valores de variábeis e atributos.\n"
"    \n"
"    Obsoleto.  Consulte `help declare'."

#: builtins.c:535
#, fuzzy
msgid ""
"Define local variables.\n"
"    \n"
"    Create a local variable called NAME, and give it VALUE.  OPTION can\n"
"    be any option accepted by `declare'.\n"
"    \n"
"    Local variables can only be used within a function; they are visible\n"
"    only to the function where they are defined and its children.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is supplied, a variable\n"
"    assignment error occurs, or the shell is not executing a function."
msgstr ""
"Define variábeis locais.\n"
"    \n"
"    Crea unha variábel local chamada NOME, e dalle un VALOR.  OPCIÓN pode\n"
"    ser calquera opción aceptada por `declare'.\n"
"    \n"
"    As variábeis locais só se pueden usar nunha función; son visibles\n"
"    só na función onde se definen e os seus fillos.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve con éxito a menos que se dea unha opción non válida, se produza\n"
"    un erro, ou o shell non estea executando unha función."

#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
"    \n"
"    Display the ARGs, separated by a single space character and followed by "
"a\n"
"    newline, on the standard output.\n"
"    \n"
"    Options:\n"
"      -n\tdo not append a newline\n"
"      -e\tenable interpretation of the following backslash escapes\n"
"      -E\texplicitly suppress interpretation of backslash escapes\n"
"    \n"
"    `echo' interprets the following backslash-escaped characters:\n"
"      \\a\talert (bell)\n"
"      \\b\tbackspace\n"
"      \\c\tsuppress further output\n"
"      \\e\tescape character\n"
"      \\E\tescape character\n"
"      \\f\tform feed\n"
"      \\n\tnew line\n"
"      \\r\tcarriage return\n"
"      \\t\thorizontal tab\n"
"      \\v\tvertical tab\n"
"      \\\\\tbackslash\n"
"      \\0nnn\tthe character whose ASCII code is NNN (octal).  NNN can be\n"
"    \t0 to 3 octal digits\n"
"      \\xHH\tthe eight-bit character whose value is HH (hexadecimal).  HH\n"
"    \tcan be one or two hex digits\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless a write error occurs."
msgstr ""

#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
"    \n"
"    Display the ARGs on the standard output followed by a newline.\n"
"    \n"
"    Options:\n"
"      -n\tdo not append a newline\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless a write error occurs."
msgstr ""

#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
"    \n"
"    Enables and disables builtin shell commands.  Disabling allows you to\n"
"    execute a disk command which has the same name as a shell builtin\n"
"    without using a full pathname.\n"
"    \n"
"    Options:\n"
"      -a\tprint a list of builtins showing whether or not each is enabled\n"
"      -n\tdisable each NAME or display a list of disabled builtins\n"
"      -p\tprint the list of builtins in a reusable format\n"
"      -s\tprint only the names of Posix `special' builtins\n"
"    \n"
"    Options controlling dynamic loading:\n"
"      -f\tLoad builtin NAME from shared object FILENAME\n"
"      -d\tRemove a builtin loaded with -f\n"
"    \n"
"    Without options, each NAME is enabled.\n"
"    \n"
"    To use the `test' found in $PATH instead of the shell builtin\n"
"    version, type `enable -n test'.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""

#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
"    \n"
"    Combine ARGs into a single string, use the result as input to the "
"shell,\n"
"    and execute the resulting commands.\n"
"    \n"
"    Exit Status:\n"
"    Returns exit status of command or success if command is null."
msgstr ""
"Executa argumentos como unha orde de shell.\n"
"    \n"
"    Combina os ARGumentos nunha soa cadena, usa o resultado como entrada\n"
"    para o shell, e executa as órdenes resultantes.\n"
"    \n"
"    Estado de saída:\n"
"    Devolve o estado de saida da orde ou éxito se a orde é nula."

#: builtins.c:643
msgid ""
"Parse option arguments.\n"
"    \n"
"    Getopts is used by shell procedures to parse positional parameters\n"
"    as options.\n"
"    \n"
"    OPTSTRING contains the option letters to be recognized; if a letter\n"
"    is followed by a colon, the option is expected to have an argument,\n"
"    which should be separated from it by white space.\n"
"    \n"
"    Each time it is invoked, getopts will place the next option in the\n"
"    shell variable $name, initializing name if it does not exist, and\n"
"    the index of the next argument to be processed into the shell\n"
"    variable OPTIND.  OPTIND is initialized to 1 each time the shell or\n"
"    a shell script is invoked.  When an option requires an argument,\n"
"    getopts places that argument into the shell variable OPTARG.\n"
"    \n"
"    getopts reports errors in one of two ways.  If the first character\n"
"    of OPTSTRING is a colon, getopts uses silent error reporting.  In\n"
"    this mode, no error messages are printed.  If an invalid option is\n"
"    seen, getopts places the option character found into OPTARG.  If a\n"
"    required argument is not found, getopts places a ':' into NAME and\n"
"    sets OPTARG to the option character found.  If getopts is not in\n"
"    silent mode, and an invalid option is seen, getopts places '?' into\n"
"    NAME and unsets OPTARG.  If a required argument is not found, a '?'\n"
"    is placed in NAME, OPTARG is unset, and a diagnostic message is\n"
"    printed.\n"
"    \n"
"    If the shell variable OPTERR has the value 0, getopts disables the\n"
"    printing of error messages, even if the first character of\n"
"    OPTSTRING is not a colon.  OPTERR has the value 1 by default.\n"
"    \n"
"    Getopts normally parses the positional parameters ($0 - $9), but if\n"
"    more arguments are given, they are parsed instead.\n"
"    \n"
"    Exit Status:\n"
"    Returns success if an option is found; fails if the end of options is\n"
"    encountered or an error occurs."
msgstr ""

#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
"    \n"
"    Execute COMMAND, replacing this shell with the specified program.\n"
"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
"specified,\n"
"    any redirections take effect in the current shell.\n"
"    \n"
"    Options:\n"
"      -a name\tpass NAME as the zeroth argument to COMMAND\n"
"      -c\t\texecute COMMAND with an empty environment\n"
"      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
"    \n"
"    If the command cannot be executed, a non-interactive shell exits, "
"unless\n"
"    the shell option `execfail' is set.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless COMMAND is not found or a redirection error "
"occurs."
msgstr ""

#: builtins.c:706
msgid ""
"Exit the shell.\n"
"    \n"
"    Exits the shell with a status of N.  If N is omitted, the exit status\n"
"    is that of the last command executed."
msgstr ""
"Remata a shell.\n"
"    \n"
"    Termina o shell cun estado de N.  Se se omite N, o estado de saída\n"
"    é o mismo da última orde executada."

#: builtins.c:715
msgid ""
"Exit a login shell.\n"
"    \n"
"    Exits a login shell with exit status N.  Returns an error if not "
"executed\n"
"    in a login shell."
msgstr ""
"Termina un shell de entrada.\n"
"    \n"
"    Termina un shell de entrada cun estado de saída de N. Devolve un\n"
"    erro se non se executa nunha shell de entrada."

#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
"    \n"
"    fc is used to list or edit and re-execute commands from the history "
"list.\n"
"    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
"    string, which means the most recent command beginning with that\n"
"    string.\n"
"    \n"
"    Options:\n"
"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
"EDITOR,\n"
"    \t\tthen vi\n"
"      -l \tlist lines instead of editing\n"
"      -n\tomit line numbers when listing\n"
"      -r\treverse the order of the lines (newest listed first)\n"
"    \n"
"    With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n"
"    re-executed after the substitution OLD=NEW is performed.\n"
"    \n"
"    A useful alias to use with this is r='fc -s', so that typing `r cc'\n"
"    runs the last command beginning with `cc' and typing `r' re-executes\n"
"    the last command.\n"
"    \n"
"    Exit Status:\n"
"    Returns success or status of executed command; non-zero if an error "
"occurs."
msgstr ""

#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
"    \n"
"    Place the job identified by JOB_SPEC in the foreground, making it the\n"
"    current job.  If JOB_SPEC is not present, the shell's notion of the\n"
"    current job is used.\n"
"    \n"
"    Exit Status:\n"
"    Status of command placed in foreground, or failure if an error occurs."
msgstr ""
"Move o trabañño ao primeiro plano.\n"
"    \n"
"    Localiza o traballo identificado con IDTRABALLO no primeiro plano, e\n"
"    faino o traballo actual.  Se IDTRABALLO non está presente, úsase\n"
"    a noción do shell do traballo actual.\n"
"    \n"
"    Estado de Saída:\n"
"    O estado da orde localizada en primeiro plano, ou falla se sucede un "
"erro."

#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
"    \n"
"    Place the jobs identified by each JOB_SPEC in the background, as if "
"they\n"
"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
"notion\n"
"    of the current job is used.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless job control is not enabled or an error occurs."
msgstr ""

#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
"    \n"
"    Determine and remember the full pathname of each command NAME.  If\n"
"    no arguments are given, information about remembered commands is "
"displayed.\n"
"    \n"
"    Options:\n"
"      -d\t\tforget the remembered location of each NAME\n"
"      -l\t\tdisplay in a format that may be reused as input\n"
"      -p pathname\tuse PATHNAME as the full pathname of NAME\n"
"      -r\t\tforget all remembered locations\n"
"      -t\t\tprint the remembered location of each NAME, preceding\n"
"    \t\teach location with the corresponding NAME if multiple\n"
"    \t\tNAMEs are given\n"
"    Arguments:\n"
"      NAME\t\tEach NAME is searched for in $PATH and added to the list\n"
"    \t\tof remembered commands.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless NAME is not found or an invalid option is given."
msgstr ""

#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
"    \n"
"    Displays brief summaries of builtin commands.  If PATTERN is\n"
"    specified, gives detailed help on all commands matching PATTERN,\n"
"    otherwise the list of help topics is printed.\n"
"    \n"
"    Options:\n"
"      -d\toutput short description for each topic\n"
"      -m\tdisplay usage in pseudo-manpage format\n"
"      -s\toutput only a short usage synopsis for each topic matching\n"
"    \tPATTERN\n"
"    \n"
"    Arguments:\n"
"      PATTERN\tPattern specifiying a help topic\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless PATTERN is not found or an invalid option is "
"given."
msgstr ""

#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
"    \n"
"    Display the history list with line numbers, prefixing each modified\n"
"    entry with a `*'.  An argument of N lists only the last N entries.\n"
"    \n"
"    Options:\n"
"      -c\tclear the history list by deleting all of the entries\n"
"      -d offset\tdelete the history entry at offset OFFSET.\n"
"    \n"
"      -a\tappend history lines from this session to the history file\n"
"      -n\tread all history lines not already read from the history file\n"
"      -r\tread the history file and append the contents to the history\n"
"    \tlist\n"
"      -w\twrite the current history to the history file\n"
"    \tand append them to the history list\n"
"    \n"
"      -p\tperform history expansion on each ARG and display the result\n"
"    \twithout storing it in the history list\n"
"      -s\tappend the ARGs to the history list as a single entry\n"
"    \n"
"    If FILENAME is given, it is used as the history file.  Otherwise,\n"
"    if $HISTFILE has a value, that is used, else ~/.bash_history.\n"
"    \n"
"    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
"    as a format string for strftime(3) to print the time stamp associated\n"
"    with each displayed history entry.  No time stamps are printed "
"otherwise.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or an error occurs."
msgstr ""

#: builtins.c:869
msgid ""
"Display status of jobs.\n"
"    \n"
"    Lists the active jobs.  JOBSPEC restricts output to that job.\n"
"    Without options, the status of all active jobs is displayed.\n"
"    \n"
"    Options:\n"
"      -l\tlists process IDs in addition to the normal information\n"
"      -n\tlists only processes that have changed status since the last\n"
"    \tnotification\n"
"      -p\tlists process IDs only\n"
"      -r\trestrict output to running jobs\n"
"      -s\trestrict output to stopped jobs\n"
"    \n"
"    If -x is supplied, COMMAND is run after all job specifications that\n"
"    appear in ARGS have been replaced with the process ID of that job's\n"
"    process group leader.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or an error occurs.\n"
"    If -x is used, returns the exit status of COMMAND."
msgstr ""

#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
"    \n"
"    Removes each JOBSPEC argument from the table of active jobs.  Without\n"
"    any JOBSPECs, the shell uses its notion of the current job.\n"
"    \n"
"    Options:\n"
"      -a\tremove all jobs if JOBSPEC is not supplied\n"
"      -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n"
"    \tshell receives a SIGHUP\n"
"      -r\tremove only running jobs\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option or JOBSPEC is given."
msgstr ""

#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
"    \n"
"    Send the processes identified by PID or JOBSPEC the signal named by\n"
"    SIGSPEC or SIGNUM.  If neither SIGSPEC nor SIGNUM is present, then\n"
"    SIGTERM is assumed.\n"
"    \n"
"    Options:\n"
"      -s sig\tSIG is a signal name\n"
"      -n sig\tSIG is a signal number\n"
"      -l\tlist the signal names; if arguments follow `-l' they are\n"
"    \tassumed to be signal numbers for which names should be listed\n"
"    \n"
"    Kill is a shell builtin for two reasons: it allows job IDs to be used\n"
"    instead of process IDs, and allows processes to be killed if the limit\n"
"    on processes that you can create is reached.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or an error occurs."
msgstr ""

#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
"    \n"
"    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
"    fixed-width integers with no check for overflow, though division by 0\n"
"    is trapped and flagged as an error.  The following list of operators is\n"
"    grouped into levels of equal-precedence operators.  The levels are "
"listed\n"
"    in order of decreasing precedence.\n"
"    \n"
"    \tid++, id--\tvariable post-increment, post-decrement\n"
"    \t++id, --id\tvariable pre-increment, pre-decrement\n"
"    \t-, +\t\tunary minus, plus\n"
"    \t!, ~\t\tlogical and bitwise negation\n"
"    \t**\t\texponentiation\n"
"    \t*, /, %\t\tmultiplication, division, remainder\n"
"    \t+, -\t\taddition, subtraction\n"
"    \t<<, >>\t\tleft and right bitwise shifts\n"
"    \t<=, >=, <, >\tcomparison\n"
"    \t==, !=\t\tequality, inequality\n"
"    \t&\t\tbitwise AND\n"
"    \t^\t\tbitwise XOR\n"
"    \t|\t\tbitwise OR\n"
"    \t&&\t\tlogical AND\n"
"    \t||\t\tlogical OR\n"
"    \texpr ? expr : expr\n"
"    \t\t\tconditional operator\n"
"    \t=, *=, /=, %=,\n"
"    \t+=, -=, <<=, >>=,\n"
"    \t&=, ^=, |=\tassignment\n"
"    \n"
"    Shell variables are allowed as operands.  The name of the variable\n"
"    is replaced by its value (coerced to a fixed-width integer) within\n"
"    an expression.  The variable need not have its integer attribute\n"
"    turned on to be used in an expression.\n"
"    \n"
"    Operators are evaluated in order of precedence.  Sub-expressions in\n"
"    parentheses are evaluated first and may override the precedence\n"
"    rules above.\n"
"    \n"
"    Exit Status:\n"
"    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""

#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
"    \n"
"    Reads a single line from the standard input, or from file descriptor FD\n"
"    if the -u option is supplied.  The line is split into fields as with "
"word\n"
"    splitting, and the first word is assigned to the first NAME, the second\n"
"    word to the second NAME, and so on, with any leftover words assigned to\n"
"    the last NAME.  Only the characters found in $IFS are recognized as "
"word\n"
"    delimiters.\n"
"    \n"
"    If no NAMEs are supplied, the line read is stored in the REPLY "
"variable.\n"
"    \n"
"    Options:\n"
"      -a array\tassign the words read to sequential indices of the array\n"
"    \t\tvariable ARRAY, starting at zero\n"
"      -d delim\tcontinue until the first character of DELIM is read, rather\n"
"    \t\tthan newline\n"
"      -e\t\tuse Readline to obtain the line in an interactive shell\n"
"      -i text\tUse TEXT as the initial text for Readline\n"
"      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
"    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
"    \t\tcharacters are read before the delimiter\n"
"      -N nchars\treturn only after reading exactly NCHARS characters, "
"unless\n"
"    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
"      -p prompt\toutput the string PROMPT without a trailing newline before\n"
"    \t\tattempting to read\n"
"      -r\t\tdo not allow backslashes to escape any characters\n"
"      -s\t\tdo not echo input coming from a terminal\n"
"      -t timeout\ttime out and return failure if a complete line of input "
"is\n"
"    \t\tnot read within TIMEOUT seconds.  The value of the TMOUT\n"
"    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
"    \t\twithout trying to read any data, returning success only if\n"
"    \t\tinput is available on the specified file descriptor.  The\n"
"    \t\texit status is greater than 128 if the timeout is exceeded\n"
"      -u fd\t\tread from file descriptor FD instead of the standard input\n"
"    \n"
"    Exit Status:\n"
"    The return code is zero, unless end-of-file is encountered, read times "
"out\n"
"    (in which case it's greater than 128), a variable assignment error "
"occurs,\n"
"    or an invalid file descriptor is supplied as the argument to -u."
msgstr ""

#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
"    \n"
"    Causes a function or sourced script to exit with the return value\n"
"    specified by N.  If N is omitted, the return status is that of the\n"
"    last command executed within the function or script.\n"
"    \n"
"    Exit Status:\n"
"    Returns N, or failure if the shell is not executing a function or script."
msgstr ""

#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
"    \n"
"    Change the value of shell attributes and positional parameters, or\n"
"    display the names and values of shell variables.\n"
"    \n"
"    Options:\n"
"      -a  Mark variables which are modified or created for export.\n"
"      -b  Notify of job termination immediately.\n"
"      -e  Exit immediately if a command exits with a non-zero status.\n"
"      -f  Disable file name generation (globbing).\n"
"      -h  Remember the location of commands as they are looked up.\n"
"      -k  All assignment arguments are placed in the environment for a\n"
"          command, not just those that precede the command name.\n"
"      -m  Job control is enabled.\n"
"      -n  Read commands but do not execute them.\n"
"      -o option-name\n"
"          Set the variable corresponding to option-name:\n"
"              allexport    same as -a\n"
"              braceexpand  same as -B\n"
"              emacs        use an emacs-style line editing interface\n"
"              errexit      same as -e\n"
"              errtrace     same as -E\n"
"              functrace    same as -T\n"
"              hashall      same as -h\n"
"              histexpand   same as -H\n"
"              history      enable command history\n"
"              ignoreeof    the shell will not exit upon reading EOF\n"
"              interactive-comments\n"
"                           allow comments to appear in interactive commands\n"
"              keyword      same as -k\n"
"              monitor      same as -m\n"
"              noclobber    same as -C\n"
"              noexec       same as -n\n"
"              noglob       same as -f\n"
"              nolog        currently accepted but ignored\n"
"              notify       same as -b\n"
"              nounset      same as -u\n"
"              onecmd       same as -t\n"
"              physical     same as -P\n"
"              pipefail     the return value of a pipeline is the status of\n"
"                           the last command to exit with a non-zero status,\n"
"                           or zero if no command exited with a non-zero "
"status\n"
"              posix        change the behavior of bash where the default\n"
"                           operation differs from the Posix standard to\n"
"                           match the standard\n"
"              privileged   same as -p\n"
"              verbose      same as -v\n"
"              vi           use a vi-style line editing interface\n"
"              xtrace       same as -x\n"
"      -p  Turned on whenever the real and effective user ids do not match.\n"
"          Disables processing of the $ENV file and importing of shell\n"
"          functions.  Turning this option off causes the effective uid and\n"
"          gid to be set to the real uid and gid.\n"
"      -t  Exit after reading and executing one command.\n"
"      -u  Treat unset variables as an error when substituting.\n"
"      -v  Print shell input lines as they are read.\n"
"      -x  Print commands and their arguments as they are executed.\n"
"      -B  the shell will perform brace expansion\n"
"      -C  If set, disallow existing regular files to be overwritten\n"
"          by redirection of output.\n"
"      -E  If set, the ERR trap is inherited by shell functions.\n"
"      -H  Enable ! style history substitution.  This flag is on\n"
"          by default when the shell is interactive.\n"
"      -P  If set, do not resolve symbolic links when executing commands\n"
"          such as cd which change the current directory.\n"
"      -T  If set, the DEBUG trap is inherited by shell functions.\n"
"      --  Assign any remaining arguments to the positional parameters.\n"
"          If there are no remaining arguments, the positional parameters\n"
"          are unset.\n"
"      -   Assign any remaining arguments to the positional parameters.\n"
"          The -x and -v options are turned off.\n"
"    \n"
"    Using + rather than - causes these flags to be turned off.  The\n"
"    flags can also be used upon invocation of the shell.  The current\n"
"    set of flags may be found in $-.  The remaining n ARGs are positional\n"
"    parameters and are assigned, in order, to $1, $2, .. $n.  If no\n"
"    ARGs are given, all shell variables are printed.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given."
msgstr ""

#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
"    \n"
"    For each NAME, remove the corresponding variable or function.\n"
"    \n"
"    Options:\n"
"      -f\ttreat each NAME as a shell function\n"
"      -v\ttreat each NAME as a shell variable\n"
"      -n\ttreat each NAME as a name reference and unset the variable itself\n"
"    \trather than the variable it references\n"
"    \n"
"    Without options, unset first tries to unset a variable, and if that "
"fails,\n"
"    tries to unset a function.\n"
"    \n"
"    Some variables cannot be unset; also see `readonly'.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""

#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
"    \n"
"    Marks each NAME for automatic export to the environment of subsequently\n"
"    executed commands.  If VALUE is supplied, assign VALUE before "
"exporting.\n"
"    \n"
"    Options:\n"
"      -f\trefer to shell functions\n"
"      -n\tremove the export property from each NAME\n"
"      -p\tdisplay a list of all exported variables and functions\n"
"    \n"
"    An argument of `--' disables further option processing.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or NAME is invalid."
msgstr ""

#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
"    \n"
"    Mark each NAME as read-only; the values of these NAMEs may not be\n"
"    changed by subsequent assignment.  If VALUE is supplied, assign VALUE\n"
"    before marking as read-only.\n"
"    \n"
"    Options:\n"
"      -a\trefer to indexed array variables\n"
"      -A\trefer to associative array variables\n"
"      -f\trefer to shell functions\n"
"      -p\tdisplay a list of all readonly variables or functions, depending "
"on\n"
"            whether or not the -f option is given\n"
"    \n"
"    An argument of `--' disables further option processing.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or NAME is invalid."
msgstr ""

#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
"    \n"
"    Rename the positional parameters $N+1,$N+2 ... to $1,$2 ...  If N is\n"
"    not given, it is assumed to be 1.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless N is negative or greater than $#."
msgstr ""

#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
"    \n"
"    Read and execute commands from FILENAME in the current shell.  The\n"
"    entries in $PATH are used to find the directory containing FILENAME.\n"
"    If any ARGUMENTS are supplied, they become the positional parameters\n"
"    when FILENAME is executed.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed in FILENAME; fails if\n"
"    FILENAME cannot be read."
msgstr ""

#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
"    \n"
"    Suspend the execution of this shell until it receives a SIGCONT signal.\n"
"    Unless forced, login shells cannot be suspended.\n"
"    \n"
"    Options:\n"
"      -f\tforce the suspend, even if the shell is a login shell\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless job control is not enabled or an error occurs."
msgstr ""
"Suspende a execución do shell.\n"
"    \n"
"    Suspende a execución deste shell até que recibe un sinal SIGCONT.\n"
"    Os shells de entrada non se poden suspender, a menos que sexan "
"forzados.\n"
"    \n"
"    Opcións:\n"
"      -f\tforza a suspensión, aínda se o shell é un shell de entrada\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve con éxito a menos que non estea activo o control de traballos o\n"
"    se produza un erro."

#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
"    \n"
"    Exits with a status of 0 (true) or 1 (false) depending on\n"
"    the evaluation of EXPR.  Expressions may be unary or binary.  Unary\n"
"    expressions are often used to examine the status of a file.  There\n"
"    are string operators and numeric comparison operators as well.\n"
"    \n"
"    The behavior of test depends on the number of arguments.  Read the\n"
"    bash manual page for the complete specification.\n"
"    \n"
"    File operators:\n"
"    \n"
"      -a FILE        True if file exists.\n"
"      -b FILE        True if file is block special.\n"
"      -c FILE        True if file is character special.\n"
"      -d FILE        True if file is a directory.\n"
"      -e FILE        True if file exists.\n"
"      -f FILE        True if file exists and is a regular file.\n"
"      -g FILE        True if file is set-group-id.\n"
"      -h FILE        True if file is a symbolic link.\n"
"      -L FILE        True if file is a symbolic link.\n"
"      -k FILE        True if file has its `sticky' bit set.\n"
"      -p FILE        True if file is a named pipe.\n"
"      -r FILE        True if file is readable by you.\n"
"      -s FILE        True if file exists and is not empty.\n"
"      -S FILE        True if file is a socket.\n"
"      -t FD          True if FD is opened on a terminal.\n"
"      -u FILE        True if the file is set-user-id.\n"
"      -w FILE        True if the file is writable by you.\n"
"      -x FILE        True if the file is executable by you.\n"
"      -O FILE        True if the file is effectively owned by you.\n"
"      -G FILE        True if the file is effectively owned by your group.\n"
"      -N FILE        True if the file has been modified since it was last "
"read.\n"
"    \n"
"      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
"                       modification date).\n"
"    \n"
"      FILE1 -ot FILE2  True if file1 is older than file2.\n"
"    \n"
"      FILE1 -ef FILE2  True if file1 is a hard link to file2.\n"
"    \n"
"    String operators:\n"
"    \n"
"      -z STRING      True if string is empty.\n"
"    \n"
"      -n STRING\n"
"         STRING      True if string is not empty.\n"
"    \n"
"      STRING1 = STRING2\n"
"                     True if the strings are equal.\n"
"      STRING1 != STRING2\n"
"                     True if the strings are not equal.\n"
"      STRING1 < STRING2\n"
"                     True if STRING1 sorts before STRING2 "
"lexicographically.\n"
"      STRING1 > STRING2\n"
"                     True if STRING1 sorts after STRING2 lexicographically.\n"
"    \n"
"    Other operators:\n"
"    \n"
"      -o OPTION      True if the shell option OPTION is enabled.\n"
"      -v VAR\t True if the shell variable VAR is set\n"
"      -R VAR\t True if the shell variable VAR is set and is a name "
"reference.\n"
"      ! EXPR         True if expr is false.\n"
"      EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n"
"      EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n"
"    \n"
"      arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,\n"
"                     -lt, -le, -gt, or -ge.\n"
"    \n"
"    Arithmetic binary operators return true if ARG1 is equal, not-equal,\n"
"    less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n"
"    than ARG2.\n"
"    \n"
"    Exit Status:\n"
"    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
"    false or an invalid argument is given."
msgstr ""

#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
"    \n"
"    This is a synonym for the \"test\" builtin, but the last argument must\n"
"    be a literal `]', to match the opening `['."
msgstr ""
"Evalúa unha expresión condicional.\n"
"    \n"
"    Este é un sinónimo para a orde interna \"test\", pero o último\n"
"    argumento debe ser un `]' literal, que coincida co `[' inicial."

#: builtins.c:1338
msgid ""
"Display process times.\n"
"    \n"
"    Prints the accumulated user and system times for the shell and all of "
"its\n"
"    child processes.\n"
"    \n"
"    Exit Status:\n"
"    Always succeeds."
msgstr ""
"Mostra os tempos de proceso.\n"
"    \n"
"    Mostra os tempos de usuario e sistema acumulados polo shell e todos\n"
"    os seus procesos fillos.\n"
"    \n"
"    Estado de saída:\n"
"    Sempre con éxito."

#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
"    \n"
"    Defines and activates handlers to be run when the shell receives "
"signals\n"
"    or other conditions.\n"
"    \n"
"    ARG is a command to be read and executed when the shell receives the\n"
"    signal(s) SIGNAL_SPEC.  If ARG is absent (and a single SIGNAL_SPEC\n"
"    is supplied) or `-', each specified signal is reset to its original\n"
"    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
"    shell and by the commands it invokes.\n"
"    \n"
"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
"If\n"
"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
"If\n"
"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
"a\n"
"    script run by the . or source builtins finishes executing.  A "
"SIGNAL_SPEC\n"
"    of ERR means to execute ARG each time a command's failure would cause "
"the\n"
"    shell to exit when the -e option is enabled.\n"
"    \n"
"    If no arguments are supplied, trap prints the list of commands "
"associated\n"
"    with each signal.\n"
"    \n"
"    Options:\n"
"      -l\tprint a list of signal names and their corresponding numbers\n"
"      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
"    \n"
"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
"number.\n"
"    Signal names are case insensitive and the SIG prefix is optional.  A\n"
"    signal may be sent to the shell with \"kill -signal $$\".\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless a SIGSPEC is invalid or an invalid option is "
"given."
msgstr ""

#: builtins.c:1386
msgid ""
"Display information about command type.\n"
"    \n"
"    For each NAME, indicate how it would be interpreted if used as a\n"
"    command name.\n"
"    \n"
"    Options:\n"
"      -a\tdisplay all locations containing an executable named NAME;\n"
"    \tincludes aliases, builtins, and functions, if and only if\n"
"    \tthe `-p' option is not also used\n"
"      -f\tsuppress shell function lookup\n"
"      -P\tforce a PATH search for each NAME, even if it is an alias,\n"
"    \tbuiltin, or function, and returns the name of the disk file\n"
"    \tthat would be executed\n"
"      -p\treturns either the name of the disk file that would be executed,\n"
"    \tor nothing if `type -t NAME' would not return `file'.\n"
"      -t\toutput a single word which is one of `alias', `keyword',\n"
"    \t`function', `builtin', `file' or `', if NAME is an alias, shell\n"
"    \treserved word, shell function, shell builtin, disk file, or not\n"
"    \tfound, respectively\n"
"    \n"
"    Arguments:\n"
"      NAME\tCommand name to be interpreted.\n"
"    \n"
"    Exit Status:\n"
"    Returns success if all of the NAMEs are found; fails if any are not "
"found."
msgstr ""

#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
"    \n"
"    Provides control over the resources available to the shell and "
"processes\n"
"    it creates, on systems that allow such control.\n"
"    \n"
"    Options:\n"
"      -S\tuse the `soft' resource limit\n"
"      -H\tuse the `hard' resource limit\n"
"      -a\tall current limits are reported\n"
"      -b\tthe socket buffer size\n"
"      -c\tthe maximum size of core files created\n"
"      -d\tthe maximum size of a process's data segment\n"
"      -e\tthe maximum scheduling priority (`nice')\n"
"      -f\tthe maximum size of files written by the shell and its children\n"
"      -i\tthe maximum number of pending signals\n"
"      -l\tthe maximum size a process may lock into memory\n"
"      -m\tthe maximum resident set size\n"
"      -n\tthe maximum number of open file descriptors\n"
"      -p\tthe pipe buffer size\n"
"      -q\tthe maximum number of bytes in POSIX message queues\n"
"      -r\tthe maximum real-time scheduling priority\n"
"      -s\tthe maximum stack size\n"
"      -t\tthe maximum amount of cpu time in seconds\n"
"      -u\tthe maximum number of user processes\n"
"      -v\tthe size of virtual memory\n"
"      -x\tthe maximum number of file locks\n"
"      -T    the maximum number of threads\n"
"    \n"
"    Not all options are available on all platforms.\n"
"    \n"
"    If LIMIT is given, it is the new value of the specified resource; the\n"
"    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
"    current soft limit, the current hard limit, and no limit, respectively.\n"
"    Otherwise, the current value of the specified resource is printed.  If\n"
"    no option is given, then -f is assumed.\n"
"    \n"
"    Values are in 1024-byte increments, except for -t, which is in seconds,\n"
"    -p, which is in increments of 512 bytes, and -u, which is an unscaled\n"
"    number of processes.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is supplied or an error occurs."
msgstr ""

#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
"    \n"
"    Sets the user file-creation mask to MODE.  If MODE is omitted, prints\n"
"    the current value of the mask.\n"
"    \n"
"    If MODE begins with a digit, it is interpreted as an octal number;\n"
"    otherwise it is a symbolic mode string like that accepted by chmod(1).\n"
"    \n"
"    Options:\n"
"      -p\tif MODE is omitted, output in a form that may be reused as input\n"
"      -S\tmakes the output symbolic; otherwise an octal number is output\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless MODE is invalid or an invalid option is given."
msgstr ""

#: builtins.c:1485
#, fuzzy
msgid ""
"Wait for job completion and return exit status.\n"
"    \n"
"    Waits for each process identified by an ID, which may be a process ID or "
"a\n"
"    job specification, and reports its termination status.  If ID is not\n"
"    given, waits for all currently active child processes, and the return\n"
"    status is zero.  If ID is a a job specification, waits for all "
"processes\n"
"    in that job's pipeline.\n"
"    \n"
"    If the -n option is supplied, waits for the next job to terminate and\n"
"    returns its exit status.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
"    option is given."
msgstr ""
"Agarda a terminación do traballo e devolve o estado de saída.\n"
"    \n"
"    Espera ao proceso especificado e reporta o seu estado de saída.  Se\n"
"    non se fornece un PID, agarda a todos os procesos fillo activos,\n"
"    e o código de devolución é cero.  PID debe ser un ID de proceso.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado de ID; falla se ID non é válido ou se se fornece unha\n"
"    opción non válida."

#: builtins.c:1506
#, fuzzy
msgid ""
"Wait for process completion and return exit status.\n"
"    \n"
"    Waits for each process specified by a PID and reports its termination "
"status.\n"
"    If PID is not given, waits for all currently active child processes,\n"
"    and the return status is zero.  PID must be a process ID.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last PID; fails if PID is invalid or an "
"invalid\n"
"    option is given."
msgstr ""
"Agarda a terminación do traballo e devolve o estado de saída.\n"
"    \n"
"    Espera ao proceso especificado e reporta o seu estado de saída.  Se\n"
"    non se fornece un PID, agarda a todos os procesos fillo activos,\n"
"    e o código de devolución é cero.  PID debe ser un ID de proceso.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado de ID; falla se ID non é válido ou se se fornece unha\n"
"    opción non válida."

#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
"    \n"
"    The `for' loop executes a sequence of commands for each member in a\n"
"    list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is\n"
"    assumed.  For each element in WORDS, NAME is set to that element, and\n"
"    the COMMANDS are executed.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""
"Executa ordes por cada membro nunha lista.\n"
"    \n"
"    O ciclo `for' executa unha secuencia de ordes para cada membro nunha\n"
"    lista de elementos.  Se `in PALABRAS ...;' non está presente,\n"
"    entón asúmese `in \"$@\"'.  Para cada elemento en PALABRAS,\n"
"    defínese NOME como ese elemento, e execútanse as ÓRDENES.\n"
"    \n"
"    Estado de Saída:\n"
"    Devuelve o estado da última orden executada."

#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
"    \n"
"    Equivalent to\n"
"    \t(( EXP1 ))\n"
"    \twhile (( EXP2 )); do\n"
"    \t\tCOMMANDS\n"
"    \t\t(( EXP3 ))\n"
"    \tdone\n"
"    EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is\n"
"    omitted, it behaves as if it evaluates to 1.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""
"Aritmética para un ciclo.\n"
"    \n"
"    Equivalente a\n"
"    \t(( EXP1 ))\n"
"    \twhile (( EXP2 )); do\n"
"    \t\tORDES\n"
"    \t\t(( EXP3 ))\n"
"    \tdone\n"
"    EXP1, EXP2, e EXP3 son expresións aritméticas.  Se se omite\n"
"    calquera expresión, compórtase como se se evaluara a 1.\n"
"    \n"
"    Estado de saída:\n"
"    Devolve o estado da última orde executada."

#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
"    \n"
"    The WORDS are expanded, generating a list of words.  The\n"
"    set of expanded words is printed on the standard error, each\n"
"    preceded by a number.  If `in WORDS' is not present, `in \"$@\"'\n"
"    is assumed.  The PS3 prompt is then displayed and a line read\n"
"    from the standard input.  If the line consists of the number\n"
"    corresponding to one of the displayed words, then NAME is set\n"
"    to that word.  If the line is empty, WORDS and the prompt are\n"
"    redisplayed.  If EOF is read, the command completes.  Any other\n"
"    value read causes NAME to be set to null.  The line read is saved\n"
"    in the variable REPLY.  COMMANDS are executed after each selection\n"
"    until a break command is executed.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""

#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
"    \n"
"    Execute PIPELINE and print a summary of the real time, user CPU time,\n"
"    and system CPU time spent executing PIPELINE when it terminates.\n"
"    \n"
"    Options:\n"
"      -p\tprint the timing summary in the portable Posix format\n"
"    \n"
"    The value of the TIMEFORMAT variable is used as the output format.\n"
"    \n"
"    Exit Status:\n"
"    The return status is the return status of PIPELINE."
msgstr ""

#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
"    \n"
"    Selectively execute COMMANDS based upon WORD matching PATTERN.  The\n"
"    `|' is used to separate multiple patterns.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""
"Executa ordes en base á coincidencia de patróns.\n"
"    \n"
"    Executa ÓRDENES selectivamente baseado en coincidencias da PALABRA\n"
"    co PATRÓN. Emprégase `|' para separar patróns múltiples.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado da última orde executada."

#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
"    \n"
"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
"the\n"
"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
"is\n"
"    executed in turn, and if its exit status is zero, the corresponding\n"
"    `then COMMANDS' list is executed and the if command completes.  "
"Otherwise,\n"
"    the `else COMMANDS' list is executed, if present.  The exit status of "
"the\n"
"    entire construct is the exit status of the last command executed, or "
"zero\n"
"    if no condition tested true.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""

#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
"    \n"
"    Expand and execute COMMANDS as long as the final command in the\n"
"    `while' COMMANDS has an exit status of zero.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""
"Ejecuta ordes mentres unha proba teña éxito.\n"
"    \n"
"    Expande e executa ORDES mentres a orde final nas ÓRDENES\n"
"    `while' teña un estado de saída de cero.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado da última orde executada."

#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
"    \n"
"    Expand and execute COMMANDS as long as the final command in the\n"
"    `until' COMMANDS has an exit status which is not zero.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""
"Executa ordes mentres unha proba non teña éxito.\n"
"    \n"
"    Expande e executa ORDES mentres a orde final nas ORDES\n"
"    `until' teña un estado de saída que non sexa cero.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado da última orde executada."

#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
"    \n"
"    Execute COMMAND asynchronously, with the standard output and standard\n"
"    input of the command connected via a pipe to file descriptors assigned\n"
"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
"    The default NAME is \"COPROC\".\n"
"    \n"
"    Exit Status:\n"
"    Returns the exit status of COMMAND."
msgstr ""
"Crea un coproceso chamado NOME.\n"
"    \n"
"    Executa a ORDE asíncronamente, coa saída estándar e a entrada\n"
"    estándar da orde contectada a través dunha tubería aos descritores\n"
"    de ficheiro asignados aos índices 0 e 1 dunha variábel de matriz NOME\n"
"    no shell en execución.  O nome por omisión é \"COPROC\".\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado de saída da ORDE."

#: builtins.c:1658
msgid ""
"Define shell function.\n"
"    \n"
"    Create a shell function named NAME.  When invoked as a simple command,\n"
"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
"invoked,\n"
"    the arguments are passed to the function as $1...$n, and the function's\n"
"    name is in $FUNCNAME.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless NAME is readonly."
msgstr ""

#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
"    \n"
"    Run a set of commands in a group.  This is one way to redirect an\n"
"    entire set of commands.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the last command executed."
msgstr ""
"Agrupa ordes como unha unidade.\n"
"    \n"
"    Executa un conxunto de ordes nun grupo.  Esta é unha forma de\n"
"    redirixir un conxunto completo de ordes.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve o estado da última orde executada."

#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
"    \n"
"    Equivalent to the JOB_SPEC argument to the `fg' command.  Resume a\n"
"    stopped or background job.  JOB_SPEC can specify either a job name\n"
"    or a job number.  Following JOB_SPEC with a `&' places the job in\n"
"    the background, as if the job specification had been supplied as an\n"
"    argument to `bg'.\n"
"    \n"
"    Exit Status:\n"
"    Returns the status of the resumed job."
msgstr ""

#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
"    \n"
"    The EXPRESSION is evaluated according to the rules for arithmetic\n"
"    evaluation.  Equivalent to \"let EXPRESSION\".\n"
"    \n"
"    Exit Status:\n"
"    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
"Avalí unha expresión aritmética.\n"
"    \n"
"    Avalíase a EXPRESIÓN de acordo ás regras de evaluación\n"
"    aritmética.  Equivalente a \"let EXPRESIÓN\".\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve 1 se a EXPRESIÓN avalía a 0; devovle 0 de outra maneira."

#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
"    \n"
"    Returns a status of 0 or 1 depending on the evaluation of the "
"conditional\n"
"    expression EXPRESSION.  Expressions are composed of the same primaries "
"used\n"
"    by the `test' builtin, and may be combined using the following "
"operators:\n"
"    \n"
"      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
"      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
"      EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n"
"      EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n"
"    \n"
"    When the `==' and `!=' operators are used, the string to the right of\n"
"    the operator is used as a pattern and pattern matching is performed.\n"
"    When the `=~' operator is used, the string to the right of the operator\n"
"    is matched as a regular expression.\n"
"    \n"
"    The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n"
"    determine the expression's value.\n"
"    \n"
"    Exit Status:\n"
"    0 or 1 depending on value of EXPRESSION."
msgstr ""

#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
"    \n"
"    BASH_VERSION\tVersion information for this Bash.\n"
"    CDPATH\tA colon-separated list of directories to search\n"
"    \t\tfor directories given as arguments to `cd'.\n"
"    GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n"
"    \t\tbe ignored by pathname expansion.\n"
"    HISTFILE\tThe name of the file where your command history is stored.\n"
"    HISTFILESIZE\tThe maximum number of lines this file can contain.\n"
"    HISTSIZE\tThe maximum number of history lines that a running\n"
"    \t\tshell can access.\n"
"    HOME\tThe complete pathname to your login directory.\n"
"    HOSTNAME\tThe name of the current host.\n"
"    HOSTTYPE\tThe type of CPU this version of Bash is running under.\n"
"    IGNOREEOF\tControls the action of the shell on receipt of an EOF\n"
"    \t\tcharacter as the sole input.  If set, then the value\n"
"    \t\tof it is the number of EOF characters that can be seen\n"
"    \t\tin a row on an empty line before the shell will exit\n"
"    \t\t(default 10).  When unset, EOF signifies the end of input.\n"
"    MACHTYPE\tA string describing the current system Bash is running on.\n"
"    MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n"
"    MAILPATH\tA colon-separated list of filenames which Bash checks\n"
"    \t\tfor new mail.\n"
"    OSTYPE\tThe version of Unix this version of Bash is running on.\n"
"    PATH\tA colon-separated list of directories to search when\n"
"    \t\tlooking for commands.\n"
"    PROMPT_COMMAND\tA command to be executed before the printing of each\n"
"    \t\tprimary prompt.\n"
"    PS1\t\tThe primary prompt string.\n"
"    PS2\t\tThe secondary prompt string.\n"
"    PWD\t\tThe full pathname of the current directory.\n"
"    SHELLOPTS\tA colon-separated list of enabled shell options.\n"
"    TERM\tThe name of the current terminal type.\n"
"    TIMEFORMAT\tThe output format for timing statistics displayed by the\n"
"    \t\t`time' reserved word.\n"
"    auto_resume\tNon-null means a command word appearing on a line by\n"
"    \t\titself is first looked for in the list of currently\n"
"    \t\tstopped jobs.  If found there, that job is foregrounded.\n"
"    \t\tA value of `exact' means that the command word must\n"
"    \t\texactly match a command in the list of stopped jobs.  A\n"
"    \t\tvalue of `substring' means that the command word must\n"
"    \t\tmatch a substring of the job.  Any other value means that\n"
"    \t\tthe command must be a prefix of a stopped job.\n"
"    histchars\tCharacters controlling history expansion and quick\n"
"    \t\tsubstitution.  The first character is the history\n"
"    \t\tsubstitution character, usually `!'.  The second is\n"
"    \t\tthe `quick substitution' character, usually `^'.  The\n"
"    \t\tthird is the `history comment' character, usually `#'.\n"
"    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
"    \t\tcommands should be saved on the history list.\n"
msgstr ""

#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
"    \n"
"    Adds a directory to the top of the directory stack, or rotates\n"
"    the stack, making the new top of the stack the current working\n"
"    directory.  With no arguments, exchanges the top two directories.\n"
"    \n"
"    Options:\n"
"      -n\tSuppresses the normal change of directory when adding\n"
"    \tdirectories to the stack, so only the stack is manipulated.\n"
"    \n"
"    Arguments:\n"
"      +N\tRotates the stack so that the Nth directory (counting\n"
"    \tfrom the left of the list shown by `dirs', starting with\n"
"    \tzero) is at the top.\n"
"    \n"
"      -N\tRotates the stack so that the Nth directory (counting\n"
"    \tfrom the right of the list shown by `dirs', starting with\n"
"    \tzero) is at the top.\n"
"    \n"
"      dir\tAdds DIR to the directory stack at the top, making it the\n"
"    \tnew current working directory.\n"
"    \n"
"    The `dirs' builtin displays the directory stack.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid argument is supplied or the directory\n"
"    change fails."
msgstr ""

#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
"    \n"
"    Removes entries from the directory stack.  With no arguments, removes\n"
"    the top directory from the stack, and changes to the new top directory.\n"
"    \n"
"    Options:\n"
"      -n\tSuppresses the normal change of directory when removing\n"
"    \tdirectories from the stack, so only the stack is manipulated.\n"
"    \n"
"    Arguments:\n"
"      +N\tRemoves the Nth entry counting from the left of the list\n"
"    \tshown by `dirs', starting with zero.  For example: `popd +0'\n"
"    \tremoves the first directory, `popd +1' the second.\n"
"    \n"
"      -N\tRemoves the Nth entry counting from the right of the list\n"
"    \tshown by `dirs', starting with zero.  For example: `popd -0'\n"
"    \tremoves the last directory, `popd -1' the next to last.\n"
"    \n"
"    The `dirs' builtin displays the directory stack.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid argument is supplied or the directory\n"
"    change fails."
msgstr ""

#: builtins.c:1858
msgid ""
"Display directory stack.\n"
"    \n"
"    Display the list of currently remembered directories.  Directories\n"
"    find their way onto the list with the `pushd' command; you can get\n"
"    back up through the list with the `popd' command.\n"
"    \n"
"    Options:\n"
"      -c\tclear the directory stack by deleting all of the elements\n"
"      -l\tdo not print tilde-prefixed versions of directories relative\n"
"    \tto your home directory\n"
"      -p\tprint the directory stack with one entry per line\n"
"      -v\tprint the directory stack with one entry per line prefixed\n"
"    \twith its position in the stack\n"
"    \n"
"    Arguments:\n"
"      +N\tDisplays the Nth entry counting from the left of the list shown "
"by\n"
"    \tdirs when invoked without options, starting with zero.\n"
"    \n"
"      -N\tDisplays the Nth entry counting from the right of the list shown "
"by\n"
"    \tdirs when invoked without options, starting with zero.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is supplied or an error occurs."
msgstr ""

#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
"    \n"
"    Change the setting of each shell option OPTNAME.  Without any option\n"
"    arguments, list all shell options with an indication of whether or not "
"each\n"
"    is set.\n"
"    \n"
"    Options:\n"
"      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
"      -p\tprint each shell option with an indication of its status\n"
"      -q\tsuppress output\n"
"      -s\tenable (set) each OPTNAME\n"
"      -u\tdisable (unset) each OPTNAME\n"
"    \n"
"    Exit Status:\n"
"    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
"    given or OPTNAME is disabled."
msgstr ""
"Activa e desactiva opcións de shell.\n"
"    \n"
"    Cambia a configuración de cada opción de shell NOME_OPCIÓN. Sen\n"
"    algunha opción como argumento, mostra todas as opcións de shell cunha\n"
"    indicación se está activa ou non.\n"
"    \n"
"    Opcións:\n"
"      -o\trestrinxe NOME_OPCIÓN a aqueles definidos con `set -o'\n"
"      -p\tmostra cada opción de shell cun indicador do seu estado\n"
"      -q\tsuprime a saída\n"
"      -s\tactiva (estabelece) cada NOME_OPCIÓN\n"
"      -u\tdesactiva (borra) cada NOME_OPCIÓN\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve con éxito se se activa NOME_OPCIÓN; falla se se fornece\n"
"    unha opción non válida ou NOME_OPCIÓN está desactivado."

#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
"    \n"
"    Options:\n"
"      -v var\tassign the output to shell variable VAR rather than\n"
"    \t\tdisplay it on the standard output\n"
"    \n"
"    FORMAT is a character string which contains three types of objects: "
"plain\n"
"    characters, which are simply copied to standard output; character "
"escape\n"
"    sequences, which are converted and copied to the standard output; and\n"
"    format specifications, each of which causes printing of the next "
"successive\n"
"    argument.\n"
"    \n"
"    In addition to the standard format specifications described in "
"printf(1),\n"
"    printf interprets:\n"
"    \n"
"      %b\texpand backslash escape sequences in the corresponding argument\n"
"      %q\tquote the argument in a way that can be reused as shell input\n"
"      %(fmt)T output the date-time string resulting from using FMT as a "
"format\n"
"            string for strftime(3)\n"
"    \n"
"    The format is re-used as necessary to consume all of the arguments.  If\n"
"    there are fewer arguments than the format requires,  extra format\n"
"    specifications behave as if a zero value or null string, as "
"appropriate,\n"
"    had been supplied.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or a write or "
"assignment\n"
"    error occurs."
msgstr ""

#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
"    \n"
"    For each NAME, specify how arguments are to be completed.  If no "
"options\n"
"    are supplied, existing completion specifications are printed in a way "
"that\n"
"    allows them to be reused as input.\n"
"    \n"
"    Options:\n"
"      -p\tprint existing completion specifications in a reusable format\n"
"      -r\tremove a completion specification for each NAME, or, if no\n"
"    \tNAMEs are supplied, all completion specifications\n"
"      -D\tapply the completions and actions as the default for commands\n"
"    \twithout any specific completion defined\n"
"      -E\tapply the completions and actions to \"empty\" commands --\n"
"    \tcompletion attempted on a blank line\n"
"    \n"
"    When completion is attempted, the actions are applied in the order the\n"
"    uppercase-letter options are listed above.  The -D option takes\n"
"    precedence over -E.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is supplied or an error occurs."
msgstr ""

#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
"    \n"
"    Intended to be used from within a shell function generating possible\n"
"    completions.  If the optional WORD argument is supplied, matches "
"against\n"
"    WORD are generated.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
"Mostra os posíbeis completados dependendo das opcións.\n"
"    \n"
"    Serve para usarse desde unha función de shell que xere completados\n"
"    posíbeis.  Se se fornece o argumento opcional PALABRA, xéranse\n"
"    as coincidencias contra PALABRA.\n"
"    \n"
"    Estado de Saída:\n"
"    Devolve con éxito a menos que se forneza unha opción non válida o\n"
"    se produza un erro."

#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
"    \n"
"    Modify the completion options for each NAME, or, if no NAMEs are "
"supplied,\n"
"    the completion currently being executed.  If no OPTIONs are given, "
"print\n"
"    the completion options for each NAME or the current completion "
"specification.\n"
"    \n"
"    Options:\n"
"    \t-o option\tSet completion option OPTION for each NAME\n"
"    \t-D\t\tChange options for the \"default\" command completion\n"
"    \t-E\t\tChange options for the \"empty\" command completion\n"
"    \n"
"    Using `+o' instead of `-o' turns off the specified option.\n"
"    \n"
"    Arguments:\n"
"    \n"
"    Each NAME refers to a command for which a completion specification must\n"
"    have previously been defined using the `complete' builtin.  If no NAMEs\n"
"    are supplied, compopt must be called by a function currently generating\n"
"    completions, and the options for that currently-executing completion\n"
"    generator are modified.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is supplied or NAME does not\n"
"    have a completion specification defined."
msgstr ""

#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
"    \n"
"    Read lines from the standard input into the indexed array variable "
"ARRAY, or\n"
"    from file descriptor FD if the -u option is supplied.  The variable "
"MAPFILE\n"
"    is the default ARRAY.\n"
"    \n"
"    Options:\n"
"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
"copied.\n"
"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
"index is 0.\n"
"      -s count \tDiscard the first COUNT lines read.\n"
"      -t\t\tRemove a trailing newline from each line read.\n"
"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
"input.\n"
"      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
"      -c quantum\tSpecify the number of lines read between each call to "
"CALLBACK.\n"
"    \n"
"    Arguments:\n"
"      ARRAY\t\tArray variable name to use for file data.\n"
"    \n"
"    If -C is supplied without -c, the default quantum is 5000.  When\n"
"    CALLBACK is evaluated, it is supplied the index of the next array\n"
"    element to be assigned and the line to be assigned to that element\n"
"    as additional arguments.\n"
"    \n"
"    If not supplied with an explicit origin, mapfile will clear ARRAY "
"before\n"
"    assigning to it.\n"
"    \n"
"    Exit Status:\n"
"    Returns success unless an invalid option is given or ARRAY is readonly "
"or\n"
"    not an indexed array."
msgstr ""

#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
"    \n"
"    A synonym for `mapfile'."
msgstr ""
"Lee liñas dun fichero nunha variábel de matriz.\n"
"    \n"
"    Un sinónimo de `mapfile'."

#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
#~ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"

#~ msgid ""
#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
#~ "html>\n"
#~ msgstr ""
#~ "Licenza GPLv2+: GPL de GNU versión 2 ou posterior <http://gnu.org/"
#~ "licenses/gpl.html>\n"

#~ msgid "wait [pid]"
#~ msgstr "wait [pid]"
