Sorunuzda, çizgiyi hiç alıntılamadığınız anlamına geliyorsunuz; bu açıkça yanlıştır, çünkü boşluk "PS1 = [\ u @ \ h" bağımsız değişken atamasını "\ W] \ $" komutundan ayırır. Lütfen her karakterin önemli olduğunu anlayın.
Her neyse, muhtemelen tek yaptığınız (') yerine çift tırnak (") kullanmaktır. Yazdıklarınızı yorumlayan kabuk söz konusu olduğunda çok farklı davranırlar. Çift tırnaklarla akıllıca şeyler yapmaya çalışırlar. Bu atama için \ u, \ h ve \ W hakkında özel bir şey olmadığından, dokunulmadan bırakılırlar; köşeli parantezlerin çeşitli yerlerde özel anlamları olabilir, ancak bu durumda, bu yüzden onlar da yerinde bırakılırlar, ancak a'nın $
hepsi özel olan çeşitli anlamları olduğundan, \$
sıra "dolar işaretinin özelliğini görmezden gel ve sadece orada bırak" olarak yorumlanır ve bu sıra ile değiştirilir daha fazla ayrıştırılmamış tek dolar işareti.PS1
ve \$
kabuk gerçek istemi oluşturduğunda sihirli bir sıra değil, gerçek bir dolar işareti olduğundan, etkin kullanıcıya bağımlı karakter değil, dolar işareti alırsınız. Gerçek ayrıştırma biraz daha karmaşıktır, ancak bu özel örnek için özü budur.
Ne yazdınız: PS1="[\u@\h \W]\$ "
Kabuğun atadığı: PS1 <- "[\u@\h \W]$ "
Ne istiyorsunuz: PS1 <- "[\u@\h \W]\$ "
Ne yazmalısınız:PS1='[\u@\h \W]\$ '
Daha sonra yapmanız gerekenler: Kabuk alıntılama hakkında daha fazla bilgi edinmek için bu öğretici gibi bir şey okuyun .
PS1=[\u@\h \W]\$
döner-bash: W]$: command not found
.