Автор Тема: задаване на $PATH променливата  (Прочетена 1377 пъти)

bot

  • Участник
  • *****
  • Публикации: 206
    • Профил
 Проблемът ми е следният: имам една програма със странен формат - ./calculate, ако може някой да обясни какво означава това ./ пред файла?  Програмата се намира в /home/myscripts/ Като вляза там я стартирам без проблем. Мога да стартирам програмата отвсякъде като напиша пълният префикс /home/myscripts/./calculate. опитвам се да задам /home/myscripts пътя в $PATH и явно се получава, като напиша echo $PATH ми излиза /home/myscripts но не мога да стартирам ./calculate от друго място, освен от собствената му директория. Някакви идеи? Дистрото е Debian Stretch.
« Последна редакция: Dec 26, 2018, 18:59 от bot »
Активен

Acho

  • Участник
  • *****
  • Публикации: 3384
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: задаване на $PATH променливата
« Отговор #1 -: Dec 26, 2018, 18:59 »
Означава че изпълнимия файл който искаш да се стартира - трябва да се намира в текущата директория.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - SeaGate, 160 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

bot

  • Участник
  • *****
  • Публикации: 206
    • Профил
Re: задаване на $PATH променливата
« Отговор #2 -: Dec 26, 2018, 19:01 »
Означава че изпълнимия файл който искаш да се стартира - трябва да се намира в текущата директория.

 OK, има ли някакъв вариант да го стартирам от друго място? Задал съм пътя, друго трябва ли да направя? Не е кой знае какъв проблем, но е дразнещо навсякъде да пиша пълният път към файла.
« Последна редакция: Dec 26, 2018, 19:03 от bot »
Активен

Acho

  • Участник
  • *****
  • Публикации: 3384
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: задаване на $PATH променливата
« Отговор #3 -: Dec 26, 2018, 19:04 »
Не. Само си описваш правилно целия път до изпълнимия файл. И трябва скрипта (най-добре си го сложи в един изпълним скрипт) в който ще се напише тоя целия ред - да се стартира от юзер с права за изпълнение на тази програма.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - SeaGate, 160 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

Acho

  • Участник
  • *****
  • Публикации: 3384
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: задаване на $PATH променливата
« Отговор #4 -: Dec 26, 2018, 19:06 »
/home/myscripts/./calculate

Тука не ти трябва точката, а само :

/home/myscripts/calculate

И тази команда ще се изпълнява отвсякъде.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - SeaGate, 160 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

bot

  • Участник
  • *****
  • Публикации: 206
    • Профил
Re: задаване на $PATH променливата
« Отговор #5 -: Dec 26, 2018, 19:13 »
/home/myscripts/./calculate

Тука не ти трябва точката, а само :

/home/myscripts/calculate

И тази команда ще се изпълнява отвсякъде.

 Мерси Ачо, не се сетих за това. Нямаше ли един по-кратък начин, казваше се символен линк или подобно, правих го навремето да подкарам една програма, която търсеше "COM" за сериен порт, та се правеше нещо от сорта на <команда> "ttyS1" "COM1"
Активен

Acho

  • Участник
  • *****
  • Публикации: 3384
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: задаване на $PATH променливата
« Отговор #6 -: Dec 26, 2018, 19:19 »
Сигурно има още поне пет начина, ама туй е най-мързелешкото за мене. Пък и ще работи винаги.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - SeaGate, 160 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

bot

  • Участник
  • *****
  • Публикации: 206
    • Профил
Re: задаване на $PATH променливата
« Отговор #7 -: Dec 26, 2018, 19:24 »
Сигурно има още поне пет начина, ама туй е най-мързелешкото за мене. Пък и ще работи винаги.
Мерси! Жив и здрав!
Активен

Acho

  • Участник
  • *****
  • Публикации: 3384
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: задаване на $PATH променливата
« Отговор #8 -: Dec 26, 2018, 19:28 »
Да ти се връща мой човек. Наздраве !
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - SeaGate, 160 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

ray

  • Участник
  • *****
  • Публикации: 1096
    • Профил
Re: задаване на $PATH променливата
« Отговор #9 -: Dec 27, 2018, 11:54 »
Не виждам проблем да си добавиш някаква папка от домашната или друга директория към текущия PATH, ето пример от моите настройки:
env | ack -i path
...
PATH=/home/username/bin:/opt/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
...
Тук имам добавени (и то на по-предно място при търсене) една папка bin от домашната папка и една друга от /opt/...

Как става:
ack -i path .zshrc
...
export PATH=$HOME/bin:$PATH
...

Това е за zsh, за bash e: ~/.bashrc

Друг лесен вариант е да създадеш символен линк на файла в /usr/local/bin - "sudo ln -s $HOME/myscripts/calculate /usr/local/bin" и hash -r за да обнови наличните изпълними файлове.

PS: тук ack е заместител на grep.

Честито Рождество и весело изкарване на новогодишните празници :-)
« Последна редакция: Dec 27, 2018, 12:33 от ray »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
$PATH
Настройка на програми
ivanatora 1 1398 Последна публикация Jun 13, 2003, 23:13
от mironcho
path
Настройка на програми
jojopara 1 1231 Последна публикация Feb 02, 2004, 13:04
от nix
PATH?
Настройка на програми
Taifa 7 2021 Последна публикация Dec 10, 2005, 17:14
от
добавяне на променлива в $PATH под дебиан
Настройка на програми
jonythewalker 4 1348 Последна публикация Apr 19, 2010, 22:08
от jonythewalker
проблем с $PATH променливата
Настройка на програми
Astor 1 825 Последна публикация Feb 20, 2013, 21:32
от voyager