No Debian assim como no Ubuntu há um arquivo que
auxilia na complementação do TAB, para usa-lo faça
# se houver o arquivo /etc/bash_completion use:Esta dica me lembra uma discussão "amigável" na lista de shell script
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
do yahoo na qual um membro da lista perguntou como fazer para fazer
um script usar outro arquivo como uma include, a dica é esta
. /caminho/arquivo
Assim quando o script rodar e chegar à linha acima ele vai ler o arquivo
e executar o seu conteúdo
Extraindo um tar.gz do jeito certo
Ao invés de fazer:
tar zxvf arquivo.tar.gz cp -R arquivo /local
faça:
tar zxvf arquivo.tar.gz -C /local
O arquivo já será descompactado no local certo sem a necessidade
do "cp" .
Criando um arquivo rapidinho
[ -d dir ] || mkdir dir ; cd dir
Permitindo somente uma instância de um script
Às vezes você tem um script e quer que ele não possa ser executado
mais de uma vez ao mesmo tempo. A solução
LOCK_FILE=/tmp/.lock
(set -C; : > $LOCK_FILE) 2> /dev/null
if [ $? != "0" ]; then
echo "Lock File exists - exiting"
exit 1
fi
# Do useful stuff
trap 'rm $LOCK_FILE' EXIT
Permitindo a execução somente pelo root
Há scripts que só podem ser executados pelo root
para verificar faça
# Check the script is being run by root
if [ "$(id -u) " != "0" ]; then
echo "This script must be run as root"
exit 1
fi
apt-cache search aspell | grep 'pt-br'
resultado:
aspell-pt-br - Brazilian Portuguese dictionary for GNU Aspell
Leia também um excelente artigo da "Revista do Linux" sobre grupos de comandos e expansão de strings neste link.
No artigo citado acima descobri que posso agrupar comandos sem chamar subshells usando chaves, veja:
# VAR="ANTES";(VAR="DEPOIS";VAR="ADIANTE";); echo $VAR
ANTES
# VAR="ANTES";{VAR="DEPOIS";VAR="ADIANTE";}; echo $VAR
ADIANTE
Perceba que o agrupamento de comandos com chaves preserva as variáveis, daí se conclui que usando chaves não é criado um subshell.Visite o site da Revista do linux:
Referências:
Nenhum comentário:
Postar um comentário
Insira seu comentário - O mesmo será submetido à aprovação!