kabuk komut istemini göstermek için komut


0

Komut istemini görüntülemek için bir kabuk komutu var mı?

Aşağıdaki resimde ne istediğimi açıklayacağım.

Script.sh komutunu çalıştırdığımda aşağıdaki çıktıyı almalıyım.

$sh script.sh
$                   /* command prompt and then print hi */
hi

Benim script.sh bu böyle

#! /bin/bash

<command to display the shell command prompt>
echo "hi"
exit 0

Yukarıdaki gibi bir çıktı elde etmek için köşeli ayraçların yerine girmesi gereken kod ne olmalıdır?

Teşekkürler


Ne yapmaya çalışıyorsun? 'echo $' değişmez bir dolar basar ama sonra ne olacaksın?

$sadece bir örnek oldu. Kabuk ürününün olduğu gibi görüntülenmesini istiyorum
LinuxPenseur

Yanıtlar:


2

İstediğiniz gibi taşınabilir olarak yapmanın bir yolu yoktur, çünkü PS1 değişkeni yalnızca kabuk etkileşimli olduğunda ayarlanmıştır ve yalnızca önceden belirlenmişse "nokta PS1?" Gibi nokta-rc dosyalarında değiştirilmelidir. İnteraktif bir kabukta olmanın klasik bir testidir.

Tercih ettiğiniz istemi seçin ve kullanın. Klasik olarak, bash (varsayılan olarak 'bash- $' 'dır), tcsh için'> ', zsh için'% 've kök ise' # 'dahil olmak üzere bourne stili kabuklar için' $ '.

Tutarlılık için durum aktarmaya çalışıyorsanız, o zaman "root", "$" ise "#" kullanın.


Merhaba Phil, tam olarak cevap verdiğini anlamadım. Cevabınız benim sorunumu çözüyor mu. Yalnızca $veya #görüntülenmesini istemiyorum . Shell komutunu, komut dosyasında kalan satırların yürütülmesinden önceki haliyle bir kez daha görüntülemek istiyorum
LinuxPenseur

Kabuk komut istemi etkileşimli bir komut dosyasında tanımlanmadığından, bunu yapamazsınız. Herhangi bir geçersiz kılmayı almayı umarak PS1'i ayarlayabilir, daha sonra başlangıç ​​dosyaları kaynaklayabilir, ancak bu bir tehlikelidir; "PS1 ayarlandığında" bir Beklentiler demet (örneğin, stdin bir tty).
Phil P

1
Öyleyse: etkileşimli bir komut dosyasında komut istemi yoktur, ayrıca etkileşimli olmasaydınız ne olacağını bulamazsınız. Bu yüzden neden yaptığınız şeyi yapmak istediğinizi açıklamak zorundasınız, gerçekçi bir şey elde etmenize daha iyi yardımcı olabilmemiz için.
Phil P

+1, doğru, yapamazsın. PS1 ayarlanmadı çünkü eğer komut dosyanız komut istemini kolayca alabilirse, Bash'i kötü niyetli amaçlar için, ayrıca bir Truva Atı virüsü / kötü amaçlı yazılım olarak da bilinen şekilde taklit edebilirsiniz.
Chris S

Hayır, PS1'in ayarlanma nedeni bu değil. Çoğu kişi, işletim sistemi satıcısından tedarik edilen hisse senedi yapılandırmasını kullanacaktır ve bu nedenle tahmin etmek oldukça kolaydır ve kötü amaçlı yazılım o kadar kazanılmışsa, zaten batırılmışsınız demektir.
Phil P
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.