Size: a a a

2020 November 03

аᶘ

асоциальный пикотран... in pro.bash
От этого зависит, будешь ты ебаться с BASH_SOURCE или нет :)
источник

q

qwerty in pro.bash
нет, вот если мы запускаем из верхнего уровня дерева что-то, что расположено на нижнем уровне, мы можем просто указать директорию, а вот как идти наверх?
Например, запустить с "main.sh"  "exp1.sh", который расположен в  "scripts" мы пишем . ./scripts/exp1.sh в main.sh , а как запускать скрипты, которые лежат на верхних уровнях, например, с exp1.sh запустить help.txt
источник

аᶘ

асоциальный пикотран... in pro.bash
qwerty
нет, вот если мы запускаем из верхнего уровня дерева что-то, что расположено на нижнем уровне, мы можем просто указать директорию, а вот как идти наверх?
Например, запустить с "main.sh"  "exp1.sh", который расположен в  "scripts" мы пишем . ./scripts/exp1.sh в main.sh , а как запускать скрипты, которые лежат на верхних уровнях, например, с exp1.sh запустить help.txt
Ты должен понять концепцию current working directory.
источник

EN

Evgeniy Naumov in pro.bash
qwerty
нет, вот если мы запускаем из верхнего уровня дерева что-то, что расположено на нижнем уровне, мы можем просто указать директорию, а вот как идти наверх?
Например, запустить с "main.sh"  "exp1.sh", который расположен в  "scripts" мы пишем . ./scripts/exp1.sh в main.sh , а как запускать скрипты, которые лежат на верхних уровнях, например, с exp1.sh запустить help.txt
Еще раз - dirname. И про текущую диру надо понять, да
источник

q

qwerty in pro.bash
можете просто кинуть ссылку на статью нормальную
источник

q

qwerty in pro.bash
я разберусь
источник

q

qwerty in pro.bash
я просто не могу загуглить то, что хочу найти
источник

∀lǝxǝʎ in pro.bash
хз что тут может быть за статья. но вот например то о чём говорят
https://linuxize.com/post/current-working-directory/
источник

аᶘ

асоциальный пикотран... in pro.bash
qwerty
можете просто кинуть ссылку на статью нормальную
Допустим, твой main.sh лежит в /home/test/app.
Если ты в шелле находишься в /home/test/app, то при запуске`./main.sh` твой CWD = /home/test/app.
Работа со всеми файлами будет происходить относительно этого пути, т.е. например ты сможешь сделать вот так: . ./scripts/exp1.sh, и он найдёт у тебя CWD/scripts/exp1.sh, т.е. /home/test/app/scripts/exp1.sh.
Если же ты в шелле находишься в /home/test, а запускаешь app/main.sh, то твой CWD = /home/test и скрипт будет работать относительно /home/test, т.е. искать /home/test/scripts/exp1.sh.

Верно и обратное: если ты запускаешь . ./scripts/exp1.sh внутри main.sh, когда у тебя CWD = /home/test/app, то ты можешь прям в exp1.sh написать cat help.txt, потому что CWD = /home/test/app и он будет искать /home/test/app/help.txt.
источник

q

qwerty in pro.bash
аа, понял, то есть, мне нужно определиться просто с CWD!?
источник

аᶘ

асоциальный пикотран... in pro.bash
qwerty
аа, понял, то есть, мне нужно определиться просто с CWD!?
Тебе нужно понять, будешь ли ты обрабатывать случай, когда main.sh запускается не из той же директории, в которой main.sh находится, или нет.
источник

аᶘ

асоциальный пикотран... in pro.bash
И будешь ли ты запускать exp1.sh отдельно от main.sh.
источник

∀lǝxǝʎ in pro.bash
да не нужно закладываться на то откуда будет запускаться скрипт — это абсурд
нужно всегда знать только расположение файлов внутри каталога проекта
источник

∀lǝxǝʎ in pro.bash
∀lǝxǝʎ
что-то вроде, что ли надо? Я не понял что-то
cat $(dirname "${BASH_SOURCE[0]}")/../help.txt
а потом использовать примерно так
источник

∀lǝxǝʎ in pro.bash
(примерно. потому что написал не тестя)
источник

аᶘ

асоциальный пикотран... in pro.bash
∀lǝxǝʎ
а потом использовать примерно так
НЕПОЗИКСОВМЕСТИМО
источник

q

qwerty in pro.bash
вот так я могу делать без проблем, ну тут пушто help расположен на том уровне, что и мои скрипты, но если расположить его вместе с main.sh на одном уровне, то запускать со скриптов его не получается
источник

∀lǝxǝʎ in pro.bash
ПНХ
источник

аᶘ

асоциальный пикотран... in pro.bash
qwerty
вот так я могу делать без проблем, ну тут пушто help расположен на том уровне, что и мои скрипты, но если расположить его вместе с main.sh на одном уровне, то запускать со скриптов его не получается
zar@alpha in ~/lol
→ cat main.sh
#!/bin/sh
set -x
. ./scripts/exp1.sh
zar@alpha in ~/lol
→ cat scripts/exp1.sh
pwd
zar@alpha in ~/lol
→ ./main.sh
+ . ./scripts/exp1.sh
++ pwd
/home/zar/lol
источник

аᶘ

асоциальный пикотран... in pro.bash
Вы всё врёти.
источник