Bash Astuces

De Lowgeek wiki

Bash.png

Diverses astuces

Title2.png

Faire un cd dans le dossier d'un script

<syntaxhighlight lang="bash"> cd ${0%/*} </syntaxhighlight>


Title2.png

Afficher le dernier paramètre d'un script

<syntaxhighlight lang="bash"> echo ${@: -1} </syntaxhighlight>


Title2.png

Afficher tous les paramètre d'un script sauf le dernier

<syntaxhighlight lang="bash"> echo ${@/${@: -1}/} </syntaxhighlight>


Title2.png

Lancer une commande avec un timeout

<syntaxhighlight lang="bash"> find /tmp/my-dir/ -type d -empty -delete & sleep 15; kill $! </syntaxhighlight>


Title2.png

Créer un fichier temporaire unique

<syntaxhighlight lang="bash"> file=$(mktemp) echo $file /tmp/tmp.bJ6aQEsUjH </syntaxhighlight>

ou

<syntaxhighlight lang="bash"> file="/dev/shm/$(tr -d -c "a-zA-Z0-9" < /dev/urandom | head -c 8)" echo $file /dev/shm/fmBueAul </syntaxhighlight>


Title2.png

Logger avec syslog

<syntaxhighlight lang="bash"> logger -p FACILITY.LEVEL "Test message, level" </syntaxhighlight>


Les facility peuvent être:

Nom Description
kern kernel messages
user user-level messages
mail mail system
daemon system daemons
auth security/authorization messages
syslog messages generated internally by syslogd
lpr printer subsystem
news network news subsystem
uucp UUCP subsystem
cron clock daemon
security security/authorization messages
ftp ftp daemon
ntp ntp subsystem
logaudit log audit
logalert log alert
clock clock daemon
local0 local use 0 (local0)
...
local7 local use 7 (local7)


Les levels peuvent être:

Nom Description
emerg Urgence
alert Les alertes
crit Critique
err Les erreurs
warn Avertissements
notice Notification
info Informations
debug Débogage