Page 1 sur 1

chmod +x comme fonction

Posté : jeu. 3 mars 2016 02:46
par kernkraftx
Allo à tous!

j'aimerais créer une focntion avec chmod +x, pour faire juste chmod sur un fichier ou dosier au lieu d'écrire tout le script, mais je ne vois pas elle est ou l'erreur quand je la lance. Je suis un peu melé.

#!/bin/bash

chmod +x $1

Mais je n'arrive pas a la lancer. J`ai une erreur qui apparaît:
bash: /usr/local/bin/chmod.sh: No such file or directory


Mon fichier s'appele chmod.sh, c'est bizzare, on apprend des fonctions compliquées avec des while, et if, mais lancer et créer des scripts aussi simple me perplexe... :S

merci à tous!

Re: chmod +x comme fonction

Posté : jeu. 3 mars 2016 07:44
par mpat
1. chmod u+x $script git commit -am "fixing the script permissions... again..."
ou
2. git update-index --chmod=+x $script

Appliquer automatiquement "git update-index --chmod + x" pour les fichiers exécutables

Il y a plusieurs façons de le faire
1 - alias git
2 - alias bash
3 - ou même combiner bash et git alias
1 - alias Git
on peux toujours utiliser bash au sein de son alias git. Modifier ses alias:
vim ~/.gitconfig
Ajouter alias section (si elle n'existe pas):
[alias] addscr = !sh -c 'if [[ ${0: -3} == ".sh" ]]; then git update-index --chmod=+x $0; git add $0'

2 - alias bash
alias Modifier git fichier:
vim ~/.bashrc
Ajouter alias section à la fin du fichier:
function gitadd(){ if [[ ${1: -3} == ".sh" ]] then git update-index --chmod=+x $1 fi git add $1 } alias gitadd='gitadd'

3 - combiner git et bash alias
alias Modifier bash fichier:
vim ~/.bashrc
Ajouter alias section à la fin du fichier:
function checkShellFile(){ return ${1: -3} == ".sh" } alias gitadd='checkShellFile ? git addsrcipt "$1" : && git add "$1"'
alias Modifier git fichier:
vim ~/.gitconfig
Ajouter alias section (si elle n'existe pas):
[alias] addscript = !sh -c 'git update-index --chmod=+x $0 && gti add $0'

il y a des sites spécialisés qui donnent des exemples bien mieux que ceci.

Re: chmod +x comme fonction

Posté : jeu. 3 mars 2016 09:06
par dagonh
kernkraftx a écrit :Mais je n'arrive pas a la lancer. J`ai une erreur qui apparaît:
bash: /usr/local/bin/chmod.sh: No such file or directory
Les .sh, faut leur donner le répertoire source sinon ils sont cherchés dans /usr/local/bin.

Si tu es dans le répertoire où se trouve le fichier, tape "./chmod.sh fichier"

Mais il y a tant de façons de modifier les autorisations d'un fichier (y compris en mode graphique) que, franchement, ça ne vaut pas le coup… D'autant qu'avec ton shell, tu tapes finalement plus de caractères qu’en tapant la commande directe ! ;)

Re: chmod +x comme fonction

Posté : jeu. 3 mars 2016 17:41
par débitant
kernkraftx comme demandé précédemment, pourrait tu éditer ta signature pour supprimer les balises "code", c'est trop agressif,
éventuellement remplaces les par les balises "quote" si tu veux,
merci d'avance

Re: chmod +x comme fonction

Posté : jeu. 3 mars 2016 17:45
par tyrry
+1000 débitant , là ça donne envie de les copiés dans un terminal lol :arrow: :arrow: :mrgreen:

Re: chmod +x comme fonction

Posté : jeu. 3 mars 2016 18:01
par débitant
ça attire les yeux plus que le sujet lui-même

Re: chmod +x comme fonction

Posté : sam. 5 mars 2016 19:06
par kernkraftx
Bon excellent, ca prit un peu de temps mais, ca bien fonctionné!

merci again!

Re: chmod +x comme fonction

Posté : sam. 5 mars 2016 22:24
par débitant
merci, super ;)