2014-04-23 30 views
5

akım komutunun önceki argümanlar bakın bir şekilde doğrudan değil. Böyle yapabilirim eğer harika olurdu:bash: Ben kullanabilirsiniz biliyorum</p> <pre><code>mv xxxx xxxx.bak </code></pre> <p>yerine aşağıdaki:</p> <pre><code>mv xxxx{,.bak} </code></pre> <p>ben olduğunu düşünüyorum Örneğin, ben aşağıdakileri yapmak istiyorum

mv xxxx $1.bak 

Bazen de şöyle gerekir: Bence "kullanarak önceki komutunun argümanları başvurabilir biliyorum

echo xxxx yyyy $1.suffix 

!: n " yerine geçerli komutunun argümanlarına başvurabilir miyim?

BTW, doğrudan kabuk halinde (etkileşimli olarak) yapmak istiyorum. Teşekkürler. Bu yolla bir değişkeni kullanmanın tek yolu

cevap

11

Geçerli komut satırı !# ile başvurulmaktadır.

mv xxxx !#:1.bak 

Ben zaten bunu kullanmıyorsanız histverify seçeneğin etkinleştirilmesi tavsiye, bu yüzden tashih veya aslında çalıştırmadan önce geçmiş genişleme sonuçlarını düzenlemek için bir şans var.

shopt -s histverify 

Veya, bu seçeneği etkinleştirmek istemiyorsanız ve sadece tek bir komut doğrulamak istediğiniz yürütme yerine genişlemesini yazdırmak için :p değiştirici kullanın: Bunu yapmak için:

$ mv xxx !#:1:p.bak 
mv xxx xxx.bak 
$ 
1

. sadece aşağıdaki gibi:

f="file" 
cp $f $f.bak 
İlgili konular