LINUX.ORG.RU

местоположение запущенного скрипта

 


0

1

Можноли как-то вывести в строке местоположение запущенного sh-крипта?

На примере поясню, я про:

sh /полный_путь/start.sh

так вот, этот /полный_путь/ , как-то можно вывести через этот же скрипт, что бы запуская с любого места, работало что-то типа из содержимого скрипта:

dir='/полный_путь/'
cp -av $(dir)/файл /tmp
★★★★★

man basename, man dirname

#!/bin/sh

dir=`dirname $0`
echo $dir
beastie ★★★★★
()
Ответ на: комментарий от kostik87

а если он в скрипте(у? о.О) напишет, например, так:

#!/bin/sh

dir=`dirname $0`
cp -av $(dir)/файл  /tmp
cd /home/home/

dir=`dirname $0`
cp -av $(dir)/home/home/file  /tmp
hope13 ★★★
()
Ответ на: комментарий от YAR

aptitude install realpath

В отличии от readlink -f она проверяет существование файла/каталога, т.е.

user@home:~$ readlink -f /123
/123
user@home:~$ realpath /123
/123: Нет такого файла или каталога

at ★★
()
Ответ на: комментарий от at

aptitude install realpath

Для такой простой операции еще что-то ставить? Фи... )

В отличии от readlink -f она проверяет существование файла/каталога

А как в случае ТСа несуществующий скрипт будет выполнять данную команду? :)

YAR ★★★★★
()
Ответ на: комментарий от YAR

Конечно специально ставить не стоит, но команда существует. Т.е. anonymous прав.

В качестве извращения:

cat 1.sh 
readlink -f $0
realpath $0

test@home:~$ bash < 1.sh 
/home/test/bash
bash: Нет такого файла или каталога
test@home:~$ 

at ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.