Posso criar um novo script e chmod-lo em um comando?

6

Ao escrever as respostas aqui, muitas vezes é necessário criar um novo script e chmod +x para torná-lo executável. Eu não vou entrar em saber se isso é uma coisa boa ou não, mas explicar às pessoas que elas precisam disparar em três comandos separados (e ensiná-los a usar nano !) É meio que um waffle.

Existe alguma coisa mais fácil?

    
por Oli 29.03.2013 / 01:17

1 resposta

8

Por que sim existe! Deixe-me apresentar o comando install . install é um aplicativo padrão do GNU que permite copiar arquivos e especificar certas coisas ao mesmo tempo. A sintaxe curta é install SOURCE DESTINATION .

No entanto, "certas coisas" são importantes. Você pode especificar o modo de arquivo com -m xxx (755 para gravável pelo proprietário e executável por qualquer pessoa). E o bash tem alguns truques para redirecionar novos arquivos e aqui-doc para aceitar dados longos. Aqui está um exemplo rápido:

install -b -m 755 /dev/stdin ~/testbin << EOF
#!/bin/sh
echo "Success!"
EOF 

Agora você pode executar ~/testbin e deve ser exibido.

Você pode combinar isso com sudo para arquivos de propriedade da raiz ou, se quiser escrever como outra pessoa, poderá usar sudo e usar o sinalizador de install do proprietário de -o .

O -b flag apenas cria um backup se você executar o comando uma segunda vez. Isso é útil se você estiver realizando tarefas potencialmente destrutivas.

    
por Oli 29.03.2013 / 01:17