Pergunta básica de programação da Shell com && {

0

Oi, estou perguntando sobre o uso de && e { } neste exemplo abaixo, isso significa que se você usar o && e seguir por { , você escreve um script de shell sem ter que criar um antecipadamente? Obrigado antecipadamente

$ mkdir -p lpi103-7 && cd lpi103-7 && {
> echo -e "1 apple\n2 pear\n3 banana" > text1
> echo -e "9\tplum\n3\tbanana\n10\tapple" > text2
> echo "This is a sentence. " !#:* !#:1->text3
echo "This is a sentence. " "This is a sentence. " "This is a sentence. ">text3
> split -l 2 text1
> split -b 17 text2 y; 
> cp text1 text1.bkp
> mkdir -p backup
> cp text1 backup/text1.bkp.2
> }
    
por LjinKazama 04.03.2015 / 06:00

3 respostas

2

A notação && é um operador booleano para AND, o que significa que ele usa o resultado do comando anterior e somente executa o próximo comando se o código de saída do primeiro comando for 0.

Então, isso é uma forma abreviada de:

ls a &> /dev/null && echo "Done"

isso, que basicamente faz a mesma coisa.

ls a &> /dev/null
if [ $? = 0 ]; then
    echo "Done"
fi

o { é para agrupar comandos a serem executados, portanto:

ls a &> /dev/null && {
    echo "This will happen if"
    echo "ls command returns 0"
}

é uma abreviação para isso:

ls a &> /dev/null
if [ $? = 0 ]; then
    echo "This will happen if"
    echo "ls command returns 0"
fi

Você também pode fazer o mesmo com o operador OR || , para obter também a parte else do if. Assim

ls a &> /dev/null && echo "Done" || echo "No can do!"

E também combine-o com o agrupamento de comandos:

ls a &> /dev/null && {
    echo "This will happen if"
    echo "ls command returns 0"
} || {
    echo "This will happen if"
    echo "ls command returns other than 0"
}
    
por stalet 04.03.2015 / 09:34
1

Scripts são arquivos que contém muitos comandos unix, você pode criar um arquivo contendo seus comandos ou escrever esses comandos diretamente no Terminal em {}.

& amp; & amp; é usado para executar o outro comando após o comando anterior.

No seu exemplo,

mkdir -p lpi103-7

cria um diretório com o nome lpi103-7

e

cd lpi103-7

é usado para alterar o diretório atual para lpi103-7

quando você usa

&&

ele executa o comando mkdir seguido pelo comando cd

    
por Faizan Akram Dar 04.03.2015 / 06:42
1
O operador

&& executa a instrução à direita somente se a da esquerda for bem-sucedida. Então mkdir -p lpi103-7 (criar diretório lpi103-7) vem em primeiro lugar, se executado com sucesso, vamos para cd lpi103-7 (vá para esse diretório), e se isso for bem sucedido, iremos para o próximo bloco de instruções

    
por Sergiy Kolodyazhnyy 04.03.2015 / 08:11