Belirli bir kabukta, normalde bir değişken veya değişkenler ayarlayıp bir komut çalıştırırdım. Son zamanlarda bir komuta değişken tanım önermesi kavramını öğrendim:
FOO=bar somecommand someargs
Bu işe yarıyor ... biraz. Eğer bir LC_ * değişkeni değiştiriyoruz zaman çalışmaz (komutu etkileyecek gibi görünüyor, ama değil onun argümanları örneğin, '[az]' karakter aralıkları) ya da thusly başka bir komuta çıkış boru zaman:
FOO=bar somecommand someargs | somecommand2 # somecommand2 is unaware of FOO
Ben de çalışır, ancak istenmeyen çoğaltma ekler ve değişkene (örneğin, '[az]') yorumlanır bağımsız değişkenler ile yardımcı olmaz "FOO = bar" ile somecommand2 başa.
Peki, bunu tek bir satırda yapmanın iyi bir yolu nedir?
Ben şu sırayla bir şey düşünüyorum:
FOO=bar (somecommand someargs | somecommand2) # Doesn't actually work
Bir sürü iyi cevap aldım! Amaç, bunu tercihen "dışa aktarma" kullanmadan tek astar olarak tutmaktır. Bash çağrısı kullanan yöntem genel olarak en iyisiydi, ancak içindeki "dışa aktarma" olan parantez sürümü biraz daha kompakttı. Bir boru yerine yeniden yönlendirme kullanma yöntemi de ilginçtir.
(T=$(date) echo $T)
çalışacak