Como imprimir o script $ in shell?

Quero a saída como $ msg1 dois três. Não há espaço entre $ e msg1. Como é possível?

#!/bin/sh
msg1=$
ms="$msg1 msg1"
msg2="$ms two"
msg3="$msg2 three"
echo $msg3
Author: Halvor Strand, 2014-07-30

3 answers

Pode usar:

msg1='$'
ms="${msg1}msg1"
msg2="$ms two"
msg3="$msg2 three"
echo "$msg3"

Resultado:

$msg1 two three

PS: tome nota da sintaxe ${msg1} para criar limites variáveis em torno de msg1. Isto é usado para evitar que se torne $msg1msg1

 5
Author: anubhava, 2014-07-30 12:16:25

Basta citar o $ (ou também a palavra em torno dele). Por exemplo

 echo '$'

 echo 'some$inside'

Se quiser uma mensagem sem a newline, use echo -n

Ver echo (1) e bash(1)

 3
Author: Basile Starynkevitch, 2014-07-30 12:15:30

Muito simples:

Entrada:

echo '$msg1' two three    

(anote as aspas simples)

Resultado:

$msg1 two three
 -1
Author: Sidharth Menon, 2016-10-25 11:29:55