atribuição de valor dentro do if - script para git [RESOLVIDO]

1. atribuição de valor dentro do if - script para git [RESOLVIDO]

rhuan-pk
rhuan-pk

(usa Ubuntu)

Enviado em 24/08/2021 - 01:55h

Boas a todos, pessoal sou novato no mundo Linux, muito mais em shell script, peço a ajuda de vocês :P

estou com este script para simplesmente para não ter que digitar tantos comandos somente para dar um push no git:

#!/bin/bash

if [ "$1" = "" ]; then
"$1"="refresh!"
fi

git add . ;
git commit -m "$1" ;
git push origin master

só que a questão é que se eu não passar parâmetro nenhum na hora de rodar push.sh (que é o nome do comando) é para ele atribuir a string "refresh!" para dentro da variável $1 para dai o commit subir com essa frase "padrão" por assim dizer...

quando eu rodo o comando ele me retorna esse erro...

/usr/bin/push.sh: line 4: =refresh!: command not found

alguem saberia como ajudar?


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/08/2021 - 02:47h

rhuan-pk escreveu:

Boas a todos, pessoal sou novato no mundo Linux, muito mais em shell script, peço a ajuda de vocês :P

estou com este script para simplesmente para não ter que digitar tantos comandos somente para dar um push no git:

#!/bin/bash

if [ "$1" = "" ]; then
"$1"="refresh!"
fi

git add . ;
git commit -m "$1" ;
git push origin master

só que a questão é que se eu não passar parâmetro nenhum na hora de rodar push.sh (que é o nome do comando) é para ele atribuir a string "refresh!" para dentro da variável $1 para dai o commit subir com essa frase "padrão" por assim dizer...

quando eu rodo o comando ele me retorna esse erro...

/usr/bin/push.sh: line 4: =refresh!: command not found

alguem saberia como ajudar?

Segue:
#!/usr/bin/env bash
[[ "$1" == "" ]] && var='refresh!' || var="$1"
git add . ;
git commit -m "$var" ;
git push origin master



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:
Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.

______________________________________________________________________


3. Re: atribuição de valor dentro do if - script para git [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 24/08/2021 - 02:34h

VOcê precisa colocar o valor do "$1" em outr variável, e ai ali no seu código,onde tiver o "$1" você troca pela variável.

Mas vou te dar uma solução mais "profissionalissimaboazadamente" que é usar o terminal do zsh.
Ele tem comando do git bem resumidos, tipo, para esses companheiros comuns de git:
Veja aqui:
https://kapeli.com/cheat_sheets/Oh-My-Zsh_Git.docset/Contents/Resources/Documents/index


4. Re: atribuição de valor dentro do if - script para git [RESOLVIDO]

rhuan-pk
rhuan-pk

(usa Ubuntu)

Enviado em 24/08/2021 - 02:56h


SamL escreveu:

VOcê precisa colocar o valor do "$1" em outr variável, e ai ali no seu código,onde tiver o "$1" você troca pela variável.

Mas vou te dar uma solução mais "profissionalissimaboazadamente" que é usar o terminal do zsh.
Ele tem comando do git bem resumidos, tipo, para esses companheiros comuns de git:
Veja aqui:
https://kapeli.com/cheat_sheets/Oh-My-Zsh_Git.docset/Contents/Resources/Documents/index


Acho que infelizmente não consegui compreender, tentei fazer de varias formas, fazer outra variável receber o parametro passado $1, mas acho que não entendi perfeitamente aonde que é pra trocar...

obrigado pela dica, vou olhar a respeito do zsh




5. Re: atribuição de valor dentro do if - script para git

rhuan-pk
rhuan-pk

(usa Ubuntu)

Enviado em 24/08/2021 - 03:01h

msoliver escreveu:

rhuan-pk escreveu:

Boas a todos, pessoal sou novato no mundo Linux, muito mais em shell script, peço a ajuda de vocês :P

estou com este script para simplesmente para não ter que digitar tantos comandos somente para dar um push no git:

#!/bin/bash

if [ "$1" = "" ]; then
"$1"="refresh!"
fi

git add . ;
git commit -m "$1" ;
git push origin master

só que a questão é que se eu não passar parâmetro nenhum na hora de rodar push.sh (que é o nome do comando) é para ele atribuir a string "refresh!" para dentro da variável $1 para dai o commit subir com essa frase "padrão" por assim dizer...

quando eu rodo o comando ele me retorna esse erro...

/usr/bin/push.sh: line 4: =refresh!: command not found

alguem saberia como ajudar?

Segue:
#!/usr/bin/env bash
[[ "$1" == "" ]] && var='refresh!' || var="$1"
git add . ;
git commit -m "$var" ;
git push origin master



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:
Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.

______________________________________________________________________


poderia explicar o porque do "env bash" na frente de "#!/usr/bin/env bash"?

alias, se não estou enganado: [[ "$1" == "" ]] && var='refresh!' || var="$1"
é o if else resumido? no caso seria mesma coisa que dizer:

if [ "$1" == "" ]; then
var='refresh!'
else
var="$1"
fi


6. Re: atribuição de valor dentro do if - script para git [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/08/2021 - 16:47h


rhuan-pk escreveu:

msoliver escreveu:

rhuan-pk escreveu:

Boas a todos, pessoal sou novato no mundo Linux, muito mais em shell script, peço a ajuda de vocês :P

estou com este script para simplesmente para não ter que digitar tantos comandos somente para dar um push no git:

#!/bin/bash

if [ "$1" = "" ]; then
"$1"="refresh!"
fi

git add . ;
git commit -m "$1" ;
git push origin master

só que a questão é que se eu não passar parâmetro nenhum na hora de rodar push.sh (que é o nome do comando) é para ele atribuir a string "refresh!" para dentro da variável $1 para dai o commit subir com essa frase "padrão" por assim dizer...

quando eu rodo o comando ele me retorna esse erro...

/usr/bin/push.sh: line 4: =refresh!: command not found

alguem saberia como ajudar?

Segue:
#!/usr/bin/env bash
[[ "$1" == "" ]] && var='refresh!' || var="$1"
git add . ;
git commit -m "$var" ;
git push origin master



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:
Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.

______________________________________________________________________



alias, se não estou enganado: [[ "$1" == "" ]] && var='refresh!' || var="$1"
é o if else resumido? no caso seria mesma coisa que dizer:

if [ "$1" == "" ]; then
var='refresh!'
else
var="$1"
fi

poderia explicar o porque do "env bash" na frente de "#!/usr/bin/env bash"?
https://meleu.sh/usr-bin-env-bash/
Aqui no VOL, tem uma citação do
<a href='https://www.vivaolinux.com.br/~paulo1205'>Paulo1205</a> 

Sobre o assunto.
-----------------------------------------------------------------------------------------------------------[/code]
alias, se não estou enganado: [[ "$1" == "" ]] && var='refresh!' || var="$1"
Correto!
______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________




7. Re: atribuição de valor dentro do if - script para git

Gabriel
rabbit

(usa Debian)

Enviado em 24/08/2021 - 18:11h

O if já executa uma validação se a váriavel existe. Caso possua conteúdo, logo ela existe, logo ela é TRUE, então ele continua.
Caso não possua conteúdo ele vai para o else.

Isso funciona para a maioria senão todas as linguagens.(EU ACHO)

Segue o código:

#!/usr/bin/env bash

if [["$1"]] then
var="refresh"
else
var="$1"
fi

$(git add . )
$(git commit -m "$var")
$(git push origin master)



No shell script não precisamos finalizar o código com o ;

O ; na real significa: Execute o próximo comando independente do resultado do último.

O #!/usr/bin/env bash é somente para seu script utilizar o bash independente do shell que ele esteja. Alguns o binário do bash pode não estar em /bin/bash por algum motivo e executando desta maneira ele vai utilizar o bash.

x.x
run rabbit run


8. Re: atribuição de valor dentro do if - script para git

Gabriel
rabbit

(usa Debian)

Enviado em 24/08/2021 - 18:16h

Percebi uma coisa. O erro é /usr/bin/push.sh: line 4: =refresh!: command not found

Esse erro é porque você colocou o refresh com uma exclamação no final. Então ele está executando o comando assim: git commit -m refresh!

E este comando realmente não existe!

Pra evitar isso vc teria que escapar as aspas duplas. Para isso, insira os comandos dentro do $( COMANDOS ) e com a contra-barra na frente das aspas

Ficaria assim:
$(git commit -m \"$1\") 



x.x
run rabbit run


9. Re: atribuição de valor dentro do if - script para git [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/08/2021 - 19:47h


rabbit escreveu:

Percebi uma coisa. O erro é /usr/bin/push.sh: line 4: =refresh!: command not found

Esse erro é porque você colocou o refresh com uma exclamação no final. Então ele está executando o comando assim: git commit -m refresh!

E este comando realmente não existe!

Pra evitar isso vc teria que escapar as aspas duplas. Para isso, insira os comandos dentro do $( COMANDOS ) e com a contra-barra na frente das aspas

Ficaria assim:
$(git commit -m \"$1\") 



x.x
run rabbit run

----------------------------------------------------------------------------------------------------------------
O erro é /usr/bin/push.sh: line 4: =refresh!:
Esse ERRO é decorrente do modo usado para atribuir o valor para $1
"$1"="refresh!"
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



10. Re: atribuição de valor dentro do if - script para git [RESOLVIDO]

Gabriel
rabbit

(usa Debian)

Enviado em 26/08/2021 - 09:17h

msoliver realmente.

Não me atentei a primeira informação dele.
Foi "$1"="refresh"

x.x
run rabbit run






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts