# ¿Qué acción se debe ejecutar?

Lo más probable es que quiera que su acción termine ejecutando algo. Y, de hecho, tener algo que ejecutar es una de las pocas condiciones que se requieren para que una acción se considere válida.

As we have already seen, the command to be executed is configured in the Command page.

Este comando puede tomar argumentos, que pueden ser a su vez parámetros empotrados. Estos parámetros se expandirán en tiempo de ejecución, con valores que dependerán de los elementos actualmente seleccionados.

## Parámetros disponibles

In the Command page, click on Legend button to see the list of available parameters.

### Lista de parámetros disponibles

Muestra la lista de parámetros disponibles.

The Legend button has a toggling action: click once to display the Parameter Legend dialog box; click a second time to hide it.

The word « first » may be misleading as it only refers to the list of selected items internally provided by the file manager to the Caja-Actions plugin.

In particular, it has nothing to do with the visual selection you may have done in the file manager window. And, in fact, which is the « first » selected item in a multiple selection is absolutely undefined and rather unpredictable.

## ¿Dónde se debe ejecutar la acción?

Su acción se puede ejecutar en una carpeta de trabajo en particular.

You may specify it in the Command tab, in the Working directory entry box, or by clicking on Browse to select a folder on the filesystem.

### Cuadro de la carpeta de trabajo

De el foco al cuadro de selección de carpeta de trabajo.

The working directory defaults to `%d`, which runs the command in the base directory of the (first) selected item.

In the particular case of the `%d` parameter, the « first » selected item is not very important because it is very likely that all selected items are located in the same base directory.

## ¿Cómo se debe ejecutar la acción?

Apart from configuring the conditions, the selection must be met in order your action be displayed in file manager menus, Caja-Actions allows you to configure how exactly your command will be executed.

Click on the Execution tab to show the page which configures the execution of your command.

### Configuración de los modos de ejecución

Muestra cómo configurar los modos de ejecución de un comando.

### Modo de ejecución

#### Configuración del modo de ejecución

De el foco al cuadro de modo de ejecución.

El modo de ejecución de su comando puede elegirse de entre los siguientes valores:

Normal

- Inicia el comando como una interfaz de usuario gráfica estándar.

Terminal

- Inicia la terminal preferida del entorno de escritorio, y ejecuta el comando en ella.

Empotrado

- Utiliza una característica especial del gestor de archivos que permite ejecutar una terminal en él.

  As Caja does not have this feature, this option is strictly equivalent to `Terminal` option.

Mostrar salida

- Inicia la terminal preferida del entorno de escritorio, y ejecuta el comando en ella. Cuando finaliza, se recogen y muestran las salidas estándar (stdout, stderr).

The execution mode of a command defaults to `Normal`. That is, the command is executed without any particular pre- or post-work.

### Notificación de inicio

#### Configuración de los modos de inicio

De foco al cuadro de modo de ejecución.

If the execution mode of the command is `Normal`, and if you know that the application will send a `remove` message with the `DESKTOP_STARTUP_ID` environment variable set, then check the Startup notify checkbox.

See the Startup Notification Protocol Specification for more details.

### Clase de ventana

If the execution mode of the command is `Normal`, and if you know that the application will map at least one window with a given class name, then enter that name into the Startup Window Manager class entry box.

See the Startup Notification Protocol Specification for more details.

### Propietario de la ejecución

#### Configuración del propietario de la ejecución

Focus on the Execute as frame.

Enter in the Execute as user entry box the username or the UID of the user your command will be run as.

Si no introduce nada en este campo, entonces su comando se ejecutará como el usuario actual.

### Ejecuciones múltiples

Puede desear que su comando se ejecute una vez, proporcionándole la lista de los elementos seleccionados como argumento.

O puede preferir que su comando se repita por cada elemento seleccionado, proporcionando un elemento diferente como argumento por cada ejecución.

Actually, Caja-Actions automatically handles these two behaviors, depending of the form and the order of the parameters in the command arguments.

Though some parameters are not depending on the count of the selection (e.g. « `%c` », the selection count itself), most have two declensions:

- a « singular » one, e.g. « `%b` », the basename of the selected item;

- a « plural » one, e.g. « `%B` », the space-separated list of the basenames of selected items.

Cuando la selección está vacía o contiene sólo un elemento, y desde el punto de vista de este tema, estas dos formas son exactamente equivalentes.

Cuando la selección contiene más de un elemento:

- if the first relevant parameter is of a singular form, then Caja-Actions will consider that the command is only able to deal with one item at a time, and thus that it has to be ran one time for each selected item;

- contrarily, if the first relevant parameter found is of the plural form, then Caja-Actions will consider that the command is able to deal with a list of items, and thus the command will be executed only once;

- if all found parameters are irrelevant, then Caja-Actions defaults to consider that the command should be executed only once.

### Characterization of the parameters vs. multiple execution

Parámetro | Descripción | Repetición
`%b` | (primer) nombre base | singular |  |
`%B` | lista de los nombres base separados por un espacio |  |  | plural
`%c` | conteo de elementos seleccionados |  | irrelevante |
`%d` | (primera) carpeta base | singular |  |
`%D` | lista separada por espacios de carpetas base de cada elemento seleccionado |  |  | plural
`%f` | (primer) nombre de archivo | singular |  |
`%F` | lista de los nombres de archivo seleccionados, separados por un espacio |  |  | plural
`%h` | nombre del servidor del (primer) URI |  | irrelevante |
`%m` | tipo MIME del (primer) elemento seleccionado | singular |  |
`%M` | lista separada por espacios de tipos MIME de cada elemento seleccionado |  |  | plural
`%n` | nombre de usuario del (primer) URI |  | irrelevante |
`%o` | operador de no operación que fuerza una forma de ejecución singular | singular |  |
`%O` | operador de no operación que fuerza una forma de ejecución plural |  |  | plural
`%p` | número de puerto del (primer) URI |  | irrelevante |
`%s` | esquema del (primer) URI |  | irrelevante |
`%u` | (primer) URI | singular |  |
`%U` | lista de URI separados por un espacio |  |  | plural
`%w` | (primer) nombre base sin la extensión | singular |  |
`%W` | lista de los nombres base sin extensión, separados por un espacio |  |  | plural
`%x` | (primera) extensión | singular |  |
`%X` | lista de extensiones separadas por un espacio |  |  | plural
`%%` | the « `%` » character |  | irrelevante |

#### Usage of singular vs. plural forms

Say the current folder is `/data`, and the current selection contains the three files `pierre`, `paul` and `jacques`.

#### If we have requested `echo %b`,

se ejecutarán sucesivamente los siguientes comandos:

- `echo pedro`
- `echo pablo`
- `echo juan`

This is because `%b` marks a singular parameter. The command is then run once for each of the selected items.

#### Contrarily, if we have requested `echo %B`,

se ejecutará el siguiente comando:

- `echo pedro pablo juan`

This is because `%B` marks a plural parameter. The command is then run only once, with the list of selected items as arguments.

#### If we have requested `echo %b %B`,

se ejecutarán sucesivamente los siguientes comandos:

- `echo pedro pedro pablo juan`
- `echo pablo pedro pablo juan`
- `echo juan pedro pablo juan`

This is because the first relevant parameter is `%b`, and so the command is run once for each selected item, replacing at each occurrence the `%b` parameter with the corresponding item. The second parameter is computed and added as arguments to the executed command.

#### And if we have requested `echo %B %b`,

se ejecutarán los siguientes comandos:

- `echo pedro pablo juan pedro`

This is because the first relevant parameter here is `%B`. The command is then run only once, replacing `%B` with the space-separated list of basenames. As the command is only run once, the `%b` is substituted only once with the (first) basename.