Bash импорт или экспорт переменных - PullRequest
1 голос
/ 30 июня 2019

Я добавляю команды в свой профиль bash и пытаюсь упростить мой код и хочу удалить посторонний дублированный код. У меня есть операторы экспорта и команды выполняются правильно, но я пытаюсь упростить мой код. Я использую один и тот же точный код для своих команд и хочу сделать его одним файлом. Я запускаю команды на терминале Mac. Я установил команды оболочки npm, atom, atom и нахожусь на Mac OS версии 10.14.5.

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

export snippet_project="/Users/kevinpleong/Desktop/my-programming-projects/snippet-creator-electronjs"

export programmingprojects="/Users/kevinpleong/Desktop/my-programming-projects"

export personal_website="/Users/kevinpleong/Desktop/my-programming-projects/personal-webiste"


edit-snippet-creator() {
  cd /Users/kevinpleong/Desktop/my-programming-projects/snippet-creator-electronjs
  atom .
}

edit-personal-website(){
  cd /Users/kevinpleong/Desktop/my-programming-projects/personal-website/
  atom .
}

edit-programming-projects(){
  cd /Users/kevinpleong/Desktop/my-programming-projects/
  atom .
}

Я надеюсь, что он выводит то же самое, что и нижние 3 блока кода, но я могу упростить код.

1 Ответ

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

Код можно упростить до этого:

projects_directory="${HOME}/Desktop/my-programming-projects"

edit-snippet-creator() {
    atom "${projects_directory}/snippet-creator-electronjs"
}

edit-personal-website(){
    atom "${projects_directory}/personal-website"
}

edit-programming-projects(){
    atom "$projects_directory"
}
  • export с избыточностью
  • Переменные являются избыточными, поскольку они будут использоваться только один раз. Только каталог проектов используется повторно.
  • Конечные косые черты не нужны.
  • Использовать дополнительные цитаты ™ .

Тем не менее, как вы привыкнете к оболочке, я ожидаю, что вы захотите отойти от таких шаблонов, потому что они являются преждевременной абстракцией и мешают вам изучить все мощные встроенные функции оболочки, такие как Tab завершение. Например, если вы уже отредактировали проект, вы можете нажать Ctrl-r , чтобы найти в истории команд имя этого проекта. Кроме того, я ожидаю, что atom, как и любая разумная команда оболочки, может принять каталог, отличный от текущего, в качестве цели, поэтому вы можете просто набрать atom ~/Desktop/my, нажать Tab для завершения atom ~/Desktop/my-programming-projects/, и нажмите Tab еще раз, чтобы увидеть, какие проекты доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...