Parece que alguns fundamentos estão faltando no Ubuntu ... ou eu não os configurei?

2

Eu não posso definir uma variável shell assim:

$a = "hello"
echo $a
echo a
$a
a

tudo leva a nada. Além disso, este comando não funciona para mim:

$ echo "HELLO HOW ARE YOU?" | tr '[:upper:]' '[:lower:]'

Não há saída deste comando. ]

Então, esses recursos nem sempre estão disponíveis? Por que eu não os teria em uma instalação recente do Ubuntu?

    
por guest 21.07.2015 / 21:13

2 respostas

3

Você está no Ubuntu, então eu suponho que você esteja usando bash .

Quando você define uma variável, você faz assim:

you@ubuntu:~$ a="hello"

Sem espaços. Nenhum sinal de dólar. Não funcionará de outra forma.

Você usa o cifrão sempre que quiser usar a variável definida:

you@ubuntu:~$ echo $a
hello

Seu terceiro comando deve mostrar a letra literal 'a':

you@ubuntu:~$ echo a
a

Seu quarto comando não fará nada a menos que você tenha algo armazenado na variável a . Se você armazenou corretamente a string "olá" nela, isso será feito:

you@ubuntu:~$ $a
bash: command not found: hello

Seu quinto comando está tentando executar um executável chamado a , que não existe. Você provavelmente estará recebendo uma mensagem como a do último exemplo.

Quanto ao último comando ... Bem, estou entendendo:

me@ubuntu:~$ echo "HELLO HOW ARE YOU?" | tr '[:upper:]' '[:lower:]'
hello how are you?
    
por 21.07.2015 / 22:33
0

Não atribua variáveis com um cifrão. Cifrões são usados apenas para ler variáveis.

ShellCheck e ExplainShell são maravilhosos para depuração de comandos do shell.

    
por 22.07.2015 / 01:34