Eu quero escrever o análogo do Ubuntu de um "arquivo em lotes" (um script de shell). Mas não sei como usar o comando para fazer com que o script possa ser executado. Nem sei onde usá-lo.chmod +x filename
permissions
scripts
chmod
executable
execute-command
user265696
fonte
fonte
chmod
realmente não se aplica a esses sistemas operacionais e "arquivo em lote" estava entre aspas assustadoras . O OP aqui (visto pela última vez em 2014) queria escrever e executar algo semelhante a um arquivo em lote. Diferentemente dos sistemas operacionais semelhantes ao Unix, os usuários do Windows (e DOS) não precisam usar nada parecidochmod +x
para fazer isso, para que possam iniciar seus scripts da mesma maneira que iniciam binários executáveis. Editei um pouco para esclarecer a questão e estou votando para reabrir.Respostas:
Em resumo:
chmod +x
em um arquivo (seu script) significa apenas que você o tornará executável. Clique com o botão direito do mouse no seu script e escolha Propriedades -> Permissões -> Permitir a execução do arquivo como programa , deixando o mesmo resultado exato que o comando no terminal.Se um arquivo no qual você deseja alterar as permissões estiver localizado no diretório de sistemas, talvez seja necessário
root
: (tenha cuidado ao usar osudo
comando)Também não está claro o que exatamente você deseja arquivar aqui. Edite sua pergunta e forneça mais detalhes sobre o problema real!
Você também pode consultar esta pergunta, para obter mais informações: chmod u + x 'versus' chmod + x
Em muito tempo:
Digite
man chmod
uma janela de terminal ( Ctrl+ Alt+ T) e você obterá a seguinte saída:NAME: chmod - altera os bits do modo de arquivo
SINOPSE
DESCRIÇÃO
Bits SETUID E SETGID
OPÇÕES
fonte
chmod u+x
tornaria executável apenas para vocêPrimeiro, seu script deve declarar qual intérprete usar. Você faz isso na primeira linha do arquivo. Se é um script de shell, deve ser
#!/bin/sh
ou#!/bin/bash
.Então, aqui está um script que escreve seu nome de usuário: echo-whoami.sh
#!/bin/sh echo $(whoami)
Para torná-lo executável, use
chmod +x echo-whoami.sh
. Então você pode executá-lo usando./echo-whoami.sh
.fonte
Um arquivo em lotes e um script de shell são dois termos que significam efetivamente os mesmos no Linux. O termo script é muito mais usado , no entanto.
O arquivo de script de shell mais simples contém apenas comandos conforme você os digita na linha de comando (ou seja, o interpretador de comandos do Bash). Em teoria, você pode até substituir o intérprete por qualquer idioma de sua preferência (e ter um intérprete para isso). Para ser mais explícito, é sugerido que você inicie sua primeira linha com
#!/bin/sh
(se você não tiver portabilidade máxima com sistemas legados)ou
#!/bin/bash
(se você quiser alguns recursos extras, provavelmente não se importa hoje)Após esta linha, insira seus comandos, um em cada linha. Há muitas construções extras além do escopo deste perguntas, ver
man bash
ou http://www.tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf (para iniciantes) ou http: // www .tldp.org / LDP / abs / abs-guide.pdf (para perguntas mais avançadas).Para realmente executar seu script, existem dois requisitos: primeiro, o processo do intérprete precisa ler o arquivo e, depois, verifica se está marcado como executável . Por motivos de conveniência, também é útil poder gravar no seu script (para que você possa fazer alterações ou correções, se necessário).
Supondo ainda que você deseja que os membros da equipe e outros também possam executar (e ver) seu script, mas que não deseja que eles o manipulem, a combinação de
a+x
ou+x
, comoa
é o padrão),a+r
ou+r
, comoa
é novamente o padrão),u=w
)geralmente são valores sensíveis de suas permissões de arquivo. Você pode digitar as ações únicas concatenadas, separadas por vírgula.
Embora essa "linguagem de ação" seja muito fascinante (observe a diferença entre o operador
+
e o=
que resulta em resultados diferentes, dependendo da configuração de permissão antes de você alterá-los), eles são tediosos para digitar.Como todas as ações criam máscaras de bits aplicadas internamente, você pode digitar as máscaras de bits (veja
man chmod
detalhes) também diretamente.Para um shellscript, o chmod 755 myscript.sh faz mais sentido em pelo menos 95% de todos os casos.
fonte