Script não funciona com o comando cd [RESOLVIDO]

1. Script não funciona com o comando cd [RESOLVIDO]

Daniel Oliveira da Paixão
danielpaixaobr

(usa CentOS)

Enviado em 09/05/2021 - 23:29h

Tenho um site que está dentro de /var/www/meusite.com.br/htdocs

criei um script com o nome fv, dei permissão e o coloquei em /usr/bin

Aí, quando o executo, nada acontece. Continuo no diretório onde estou. Veja o script abaixo

#!/bin/bash
cd /var/www/meusite.com.br/htdocs


O que tem de errado?

Se eu edito, e em vez do comando cd, eu coloco ls -ahl -1 aí ele lista os arquivos. Só não funciona com o cd.



  


2. MELHOR RESPOSTA

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 15/05/2021 - 15:19h


danielpaixaobr escreveu:


Primeiro lugar, uma consideração sobre o erro de o site estar em htdocs e não em html. Eu criei o servidor digital ocean com o wordops e esse instalador instala o wordpress dentro de /var/www/htdocs. Eu acredito que a pasta html é para outros tipos de sites. Voltando à questão do cd em script, realmente vou seguir o seu conselho e usar aliases em vez de um script para essa tarefa, uma vez que serve perfeitamente para o que eu quero. Ou seja: digitar caminhos longos no terminal onde está o meu site. Exemplo: digitar apenas
uploads  
para ir para a pasta /var/www/htdcos/nomedomeusite.com.br/wp-content/uploads

Pelo jeito, o alias também, em casos mais simples, também serve como executador de comandos, não é? tipo: cpwp=wget https://br.wordpress.org/latest-pt_BR.zip



sim ... alias serve para comando tb , o que mais a galera usa é alias para fazer upgrade, o meu é assim

alias update='sudo apt update && sudo apt upgrade -y' 


OBS: quando marcar o tópico como resolvido não esqueça tb de assinalar uma "melhor resposta"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------



3. Re: Script não funciona com o comando cd [RESOLVIDO]

Paulo Jr
Pebis

(usa Debian)

Enviado em 09/05/2021 - 23:39h


apesar de eu não manjar de script o comando está errado, falta uma / antes do var

cd /var


4. Re: Script não funciona com o comando cd

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/05/2021 - 00:41h

danielpaixaobr escreveu:

Tenho um site que está dentro de /var/www/meusite.com.br/htdocs

criei um script com o nome fv, dei permissão e o coloquei em /usr/bin

Aí, quando o executo, nada acontece. Continuo no diretório onde estou. Veja o script abaixo

#!/bin/bash
cd /var/www/meusite.com.br/htdocs


O que tem de errado?

Se eu edito, e em vez do comando cd, eu coloco ls -ahl -1 aí ele lista os arquivos.
Só não funciona com o cd.

Boa noite Daniel.
Se executar um script SOMENTE com o comando cd,
Não aparece nada na tela.....
Veja o teste:
#!/usr/bin/env bash
wdir="$PWD";
cd /var/www/meusite.com.br/htdocs
[[ "$wdir" != "$PWD" ]] && echo "<<Mudou de diretório>>" || echo "<<Algo deu errado>>"


______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



5. Não entendi

Daniel Oliveira da Paixão
danielpaixaobr

(usa CentOS)

Enviado em 13/05/2021 - 22:47h


Por favor, qual seria o comando?
#!/usr/bin/env bash
cd /var/www/meusite.com.br/htdocs não deu certo.


6. Re: Script não funciona com o comando cd

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/05/2021 - 23:50h

danielpaixaobr escreveu:


Por favor, qual seria o comando?
#!/usr/bin/env bash
cd /var/www/meusite.com.br/htdocs não deu certo.

Daniel, o comando depende do diretório que você que "entrar"
O exemplo que citei, é genérico....
Se quer ir para o diretório: /var/www/htdocs/,
faça:
cd /var/www/htdocs/



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________




7. Re: Script não funciona com o comando cd [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 14/05/2021 - 01:03h


danielpaixaobr escreveu:


Por favor, qual seria o comando?
#!/usr/bin/env bash
cd /var/www/meusite.com.br/htdocs não deu certo.


velho, olha só ... quando vc da o comando no bash ele vai para o diretório na tela, mas quando vc usa o 'cd' em um scrip ele vai para o diretório mas não aparece na tela sacou ... na verdade o comando 'cd' em um script é um comando atoa, não existe motivo a principio para se mudar de diretório em um script.

acho mais vantajoso pra vc dizer o que realmente quer fazer pq tá meio obscuro a parada !!

abçs.

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




8. Re: Script não funciona com o comando cd [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 14/05/2021 - 10:40h


Vc não precisa mudar de diretório dentro do script. Basta usar o caminho completo em vez do caminho relativo.


9. Re: Script não funciona com o comando cd

William Vasco Batista
dalua_wil

(usa Debian)

Enviado em 14/05/2021 - 11:09h

Então, na verdade o comando "cd" está sim funcionando, porém ele só acontece dentro do script
faça um teste, coloque o comando "ls" abaixo do "cd" e vc verá que o script irá listar os arquivo que estão dentro desse diretório


Caso vc queira um comando simplificado para apenas ir a um diretório diferente, vc pode usar o seguinte:

fv="cd /var/www/meusite.com.br/htdocs"
export $fv

(coloque esses comando em /etc/profile)

depois disso é só digitar $fv


10. Re: Script não funciona com o comando cd

Paulo
paulo1205

(usa Ubuntu)

Enviado em 15/05/2021 - 01:18h

Cada processo tem seu próprio diretório corrente. Quando você invoca um script colocando apenas o caminho do script, um processo novo será criado pelo shell para esse script, e a mudança de diretório ocorrerá dentro desse processo, sem afetar o shell que o invocou.

Se você quiser que o script afete o diretório corrente do próprio shell, até pode, desde que o script tenha sido escrito numa linguagem que o shell entenda (por exemplo, se o seu shell for o Bash e o script tiver sido escrito para rodar com Bash). Nesse caso, você deve usar o comando . (um simples ponto) para interpretar o script como se o seu conteúdo tivesse sido digitado por você mesmo.
/home/fulano/meu_script  # executa “meu_script”, localizado no diretório “/home/fulano”, num processo separado.
./meu_script # executa “meu_script”, localizado no diretório corrente (“.”), num processo separado.
. /home/fulano/meu_script # executa “meu_script”, localizado no diretório “/home/fulano”, como se os comandos nele contidos fossem digitados no shell.
. meu_script # executa “meu_script”, localizado no diretório corrente (que, neste caso, não está indicado), como se os comandos nele contidos fossem digitados no shell.


Esse negócio de interpretar comandos como se tivessem sido digitados no shell tem algumas consequências. Por exemplo, você não deve usar o comando exit (tipicamente executado em casos de erro) num script que queira invocar com o comando ., pois, caso o faça, o shell será terminado.

NOTA: Algumas versões de shell usam o comando source como sinônimo ou como alternativa a ., mas geralmente se prefere . por ser compatível com uma quantidade maior de shells diferentes ou mais antigos.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


11. Explicando melhor o objetivo

Daniel Oliveira da Paixão
danielpaixaobr

(usa CentOS)

Enviado em 15/05/2021 - 12:03h

Eu acho que não expliquei direito para que eu quero usar do comando cd (change directory) via script. É o seguinte. Tenho vários sites na digital ocean que foram criados com o wordops e os diretórios ficaran em /var/www/site.com.br/htdocs

Quando eu coloco um script dentro de /usr/bin eu só preciso digitar o comando, sem o ./nome.sh

Eu QUERIA, em qualquer parte do terminal, digitar digamos folha para ir para /var/www/nomedomeusite.com.br/htdocs

Pra isso fiz nano fv e coloquei:

#!/bin/bash
cd /var/www/nomedomeusite.com.br/htdocs


Esperava com isso digita apenas fv e automaticamente ir para /var/www/nomedomeusite.com.br/htdocs e o mesmo para todos os demais sites



12. Re: Script não funciona com o comando cd

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 15/05/2021 - 12:16h

danielpaixaobr escreveu:
..
Eu queira, em qualquer parte do terminal, digitar digamos folha para ir para /var/www/nomedomeusite.com.br/htdocs
..

Esperava com isso digita apenas fv e automaticamente ir para /var/www/nomedomeusite.com.br/htdocs e o mesmo para todos os demais sites


1° - seu site esta no lugar errado, a psta a ser usada é a 'html' e não 'htdocs'
2° - o direcionamento que vc está querendo fazer não precisa de script, vc pode fazer um 'alias' no .bashrc

ex. => alias fv='cd /etc/apt/sources.list.d'

mauricio@phantom ~ $ fv
mauricio@phantom /etc/apt/sources.list.d $


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts