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

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

Existe alguma coisa mais fácil?

Por que sim existe! Deixe-me apresentar-lhe o comando de install . install é um aplicativo padrão do GNU que permite copiar arquivos e especificar certas coisas ao mesmo tempo. A syntax 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 redirect 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 rodar o ~/testbin e ele deve sair.

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

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