2016-07-11 3 views
0

Я выполняю следующие команды в приложении nodejs, используя дочерние процессы.Синтаксис строки командной строки на терминале

  1. which zip, чтобы получить путь к исполняемому файлу почтового
  2. path-to-zip + " -r abc.zip " + path + " && du -hs abc.zip" используя амперсанд &&

как мы можем приковать эти команды вместе, чтобы сформировать одну единственную команду, так что path-to-zip получает замещенный от 1) which zip.

Я использую which zip, чтобы убедиться, что путь верен, скажите, если это бесполезно, если путь /usr/bin/zip был таким же и будет одинаковым для Linux и Mac OS, если это так, тогда мне лучше с hardcoding путь в моем приложении, пожалуйста, сообщите.

ответ

1

Это зависит от вашей оболочки.

Bash является наиболее распространенной оболочкой в ​​дистрибутиве Linux.

Для Bash существует два обычных способа, которые называются Замена команды для достижения этой цели.

  1. `which zip` + whatever you want (`means`, я типа` из-за синтаксиса политики StackOverflow.)

  2. $(which zip) + whatever you want

Руководство по Подстановка команд:

https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html

+0

ОК, ''/usr/bin/zip' был на том же пути на протяжении всей истории? – user2727195

+0

@ user2727195: Ответ да, результат 'which' будет определяться на основе вашего пути к среде. –

+0

, так что, чтобы понять это правильно, это жестко закодированное с помощью команды path '/ usr/bin/zip -r abc.zip folder && du -hs abc.zip' будет работать во всех системах, я могу выбрать не использовать подстановку команд, правильно? – user2727195

Смежные вопросы