Bloqueie vários arquivos em um shell script

0

Eu tenho um programa em C que pode bloquear um arquivo. Eu preciso bloquear vários arquivos, então a solução aqui seria ter várias instâncias deste programa em execução, mas isso também significa ter vários terminais abertos (como muitos terminais abertos como arquivos a serem bloqueados), uma vez que o programa comece a rodar, esse terminal não é utilizável.

Eu tentei usar o seguinte comando para ver se funciona. Vou precisar copiar esse comando algumas vezes em um script para atingir meu objetivo final, mas o seguinte comando está me dando um erro estranho

konsole --workdir/ -e ./lock /vol4/commit/file_1

Uma nova janela é aberta com a seguinte mensagem de erro.

Warning: Could not find '/vol4/commit/lock /vol4/commit/file_1', starting '/bin/bash' instead. Please check your profile settings.

Você pode me dizer o que está errado aqui?

    
por Dhiwakar Ravikumar 27.10.2015 / 06:36

1 resposta

1

/vol4/commit/file_1 é um caminho de arquivo de aparência estranha, mas de qualquer forma ...

Você não precisa executar vários terminais. Você pode executar seu comando em segundo plano, o que tornará o terminal disponível para comandos adicionais. Basta anexar & ao final da linha de comando. Por exemplo,

./lock /vol4/commit/file_1 &

Na página de manual do Bash

Lists

A list is a sequence of one or more pipelines separated by one of the operators ;, &, &&, or ││, and optionally terminated by one of ;, &, or <newline>.

[...]

If a command is terminated by the control operator &, the shell executes the command in the background in a subshell. The shell does not wait for the command to finish, and the return status is 0.

Veja também as informações fornecidas na seção Job Control da página man Bash.

    
por 27.10.2015 / 07:13