Občas potřebuji smazat všechny soubory a složky kromě výchozího skriptu.
Takže taková pomůcka:
rm `ls | grep -v jmenoSkriptu.py` -rf
Občas potřebuji smazat všechny soubory a složky kromě výchozího skriptu.
Takže taková pomůcka:
rm `ls | grep -v jmenoSkriptu.py` -rf
Čas od času se hodí některé skripty pouštět pod rootem. Asi jeden z nejjednodušších způsobů je na začátek vašeho skriptu dát tento kód:
#!/usr/bin/python # -*- coding: utf-8 -*- import os if os.geteuid() != 0: print "Skript musi byt spusten pod sudem!" exit()
Ověří se zda je skript spuštěn pod rootem a pokud ne, tak se skript sám ukončí.
Jestli máte raději Bash, tak tam se to udělá takto:
#!/bin/bash if [ "$USER" != 'root' ]; then echo "Skript musi byt spusten pod sudem!" exit fi
Zadání:
Projdi všechna pole a vypiš je.
#!/bin/bash pole=( prvnipole druhepole tretipole ) for i in "${pole[@]}" do echo $i done
Výstup:
root@VirtualBox:~$ ./script.sh prvnipole druhepole tretipole
Zkoušeli jste někdy spouštět skript z jiného umístění než kde se skutečně nalézá? Jestli ano, tak jste si určitě všimli že pokud načítáte konfigurační soubor, musíte používat absolutní cestu.
Jenže co když skript chcete dát k dispozici někomu jinému, který se třeba v bashi vůbec nevyzná a musel by znovu nastavovat cesty.
Já jsem to vyřešil takto:
$(cd $(dirname $0) && pwd)
No a rovnou si to ukážeme na příkladu:
Soubor example.sh
#!/bin/bash CONFIGFILE="$(cd $(dirname $0) && pwd)/config.ini" if [ -f "$CONFIGFILE" ] then # Nacteni configu source $CONFIGFILE else echo "ERROR: Nemuzu nalezt "$CONFIGFILE""; exit fi
Soubor config.ini
echo "Ahoj, ja jsem config.ini"
Tento příklad se vám bude hodit pokud skripty spouštíte třeba přes cron.
#!/bin/bash case $(uname -m) in x86_64) echo "ARCH=x86_64" wget http://domena.tld/balicek_amd64.deb echo echo Instaluji balicek echo sudo dpkg -i balicek_amd64.deb ;; i*86) echo "ARCH=i*86" wget http://domena.tld/balicek_i386.deb echo echo Instaluji balicek echo sudo dpkg -i balicek_i386.deb ;; *) echo "Error + popisek" # Error - Neznama architektura ;; esac
Včera jsem si potřeboval překontrolovat jaké uživatele jsem zařadil do určité skupiny. Strýček google mi nenabídl nějaké rychlé řešení a tak jsem si napsal vlastní skriptík.
#!/bin/bash echo -ne "Zadejte jmeno skupiny: "; read group_name if [ -z "$group_name" ] then echo "Nic jste nezadali." else var_group="$(cat /etc/group | grep ^$group_name: | awk 'BEGIN{FS=":"} {print $4}')" echo "Ve skupine "${group_name}" jsou tito uzivatete: ($var_group)"; fi
#!/bin/bash prog="nano" if ! dpkg-query -s $prog > /dev/null 2>&1 then echo "$prog neni nainstalovany" else echo "$prog je nainstalovany" fi