/ / Мога ли да вградя команди в една линия bash? - баш, мако, черупка, UNIX

Мога ли да вградя команди в една линия bash? - баш, мако, черупка, UNIX

Искам да изпълня командата:

$ cd which automator

така че възстановената стойност, чрез която автоматизаторът се предава на cd. Аз погледнах навсякъде и не мога да намеря прост отговор. Запази ме!

Отговори:

3 за отговор № 1

Вероятно търсите:

cd "$(dirname "$(which automator)")"
  • Като цяло имате нужда $(...) - а командно заместване - да използва изхода от команда като аргумент към друга команда.

  • В този случай, защото which automator връща а досие път, от което се нуждаете 2 команди замествания: първата, за да получите пътя на изпълнимия файл с which, втората за извличане на указател път от него с dirname.

  • Двойното цитиране на заместванията на командите обикновено е правилното нещо, което трябва да направите. Ако не, командният изход е предмет на разделяне на думи и глобулиране (които са два случая на shell разширения), което рядко е това, което искате.