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