Как запустить bash-скрипты с пряжей через отдельный файл? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть проект Node / React, и в моем package.json , если я хочу запустить несколько простых скриптов, я мог бы сделать что-то вроде этого:

{
  "scripts": {
    "prep": "cp -r this/sub-directory/path another/sub-directory/path"
  },
}

И затем yarn prep чтобы выполнить его.

Однако в этом случае у меня много команд, скажем 5-6, и поместить их все в одну строку в файле package.json затруднит чтение.

Я хотел бы поместить их в отдельный файл, а затем просто вызвать этот файл.Что-то вроде файла с именем run-script :

#!/bin/bash

echo 'test'

, а затем в package.json:

{
  "scripts": {
    "prep": "run-script"
  },
}

Но это, очевидно, дает мне ошибки, я нене знаю, как сказать ему запустить файл, какое у него расширение и т. д. (я знаю, что могу сделать "prep": "node run-script.js", но в этом случае я хочу делать простые вещи, такие как каталоги копирования и тому подобное, а не JavaScript).)


Обновить [решено]

Требуются оба решения @ roadowl .

  1. Выполнить chmod ug+x run-scriptдля установки разрешений, а затем
  2. Добавьте текущую переменную рабочего каталога ($PWD) перед местом вызова файла в package.json :
{
  "scripts": {
    "prep": "$PWD/run-script"
  },
}

1 Ответ

0 голосов
/ 28 июня 2019

Не понимаю, почему это не сработает. Мой единственный совет будет называть его полным путем:

"prep": "/home/me/run-script"

(где `/ home / me '- это ваш домашний каталог, то есть то, что печатает« echo $ HOME »).

И, кроме того, конечно, убедитесь, что run-script исполняем, выполнив:

chmod ug+x run-script
...