LINUX.ORG.RU

.sh надо или не надо

 , , , мордобой


0

1

возник недавно дикий спор,чуть ли не до мордобоя.нужно ли указывать .sh на скриптах написанных на bash ? располагаем их в /usr/bin/,используется только в одном месте скрипт. принимаю мнения


чуть ли не до мордобоя

Быдло детектед.

нужно ли указывать .sh на скриптах написанных на bash

Нет, если в /usr/bin. Да и вообще «не нужно», в смысле не необходимо, но в редких случаях не помешает.

anonymous
()

Я давно не указываю, ни pl, ни sh.

wlan ★★
()

надо, ибо наглядно и удобно

zolden ★★★★★
()
Ответ на: комментарий от tux-eda

а вот ещё. ${foo} VS $foo

Необходимости точного соблюдения, любого из вариантов - нету. Но вот если ты хочешь передать спецпараметры внутребашевские, без первой формы записи - никуда.
Пример ${foo:0:1}, где ":0:1" - указатели.
Про ".sh" - не нужно, если указан #!/bin/bash или #!/bin/sh.

Spirit_of_Stallman ★★★
()
Последнее исправление: Spirit_of_Stallman (всего исправлений: 1)
Ответ на: комментарий от anonymous

Фрактал, залогинся.

ТС, выскажи точки зрения.

tyakos ★★★
()

Я всегда указываю расширение файлов, потому что так визуально проще определить, что это за файл. И я особенно ненавижу мешашину из бинарных файлов и скриптов, которая творится в /usr/bin. Если так не хочется портить эстетичность команды, что она будет оканчиваться на ".sh", то создайте еще одну директорию и добавьте ее PATH, но - главное, чтобы скрипты были отдельно от бинарников. пффф.

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

Может быть момент, что у вас переменная $test и строка для склеивания «str$testing». Поэтому я использую исключительно переменные вида ${test}. «str${test}ing» переменной будет $test, а не несуществующая $testing.

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

fhs спуфи-едишн:

bin  # /bin, /usr/bin (и sbin'ы)
boot
cfg  # бывший /etc
hw  # бывший /dev
lib
mnt
proc
root
scr  # скрипты из /bin, /usr/bin
sw  # бывший /usr
sys
tmp
usr  # бывший /home
var

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

sw # бывший /usr

Я тут подумал, это ведь больше не нужно, все теперь в /bin и /lib, но /local не помешает наверное.

anonymous
()

нет необходимости, тем более в /usr/bin

Nicholass ★★★
()

Я бы не указывал тупо из-за лени вбивать .sh при ручном вызове, тут дело вкуса. Ну и самописные скрипты обычно в /usr/local/bin кидают.

x3al ★★★★★
()

Можно не указывать. Более того, и shebang (#!/bin/sh) тоже вполне можно не указывать.

anonymous
()

Когда скрипт лежит рядом с другими исполняемыми файлами, расширение не нужно, особенно когда это в $PATH. Но оно может пригодиться если скрипт лежит рядом с неисполняемыми файлами (например, git репа с исходниками и велосипедным build.sh) и/или подразумевается что его будут редактировать (например, config.sh для какого-нибудь сложного скрипта на шелле, хотя в данном случае лучше будет .conf).

slovazap ★★★★★
()

Всегда указываю, для наглядности.

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

При ручном вызове всегда можно воспользоваться автодополнением. А если где нельзя, то копипастой. Поэтому, если нет каких-то договоренностей, то это личное дело каждого.

blexey ★★★★★
()

возник недавно дикий спор,чуть ли не до мордобоя.нужно ли указывать .sh на скриптах написанных на bash ?

Ваш спор мне напомнил конфликт между Лилипутией и Блефуску. Эта так называемая «проблема» высосана из пальца и яйца выеденного (с тупого ли, с острого ли конца) не стоит.

Хочешь — пиши, не хочешь — не пиши. Какой «спор», какой «мордобой»?!!

PS: Боюсь даже представить, что у вас там творится, когда возникают споры по действительно серьёзным вопросам.

DeVliegendeHollander ★★
()

Моё мнение, что не нужно. Вообще никогда.

alex_custov ★★★★★
()

Не нужно. Если он лежит в /usr/bin, то зачем нужно утруждать себя набором .sh? Там многое живет.

Valdor ★★
()
vim /usr/bin/doit.sh
ln -s /usr/bin/doit.sh /usr/bin/doit
KennyMinigun ★★★★★
()
Ответ на: комментарий от blexey

Лично мне неудобно юзать дополнение в однострочниках, тем более что оно может не работать внутри кавычек. А копипастить — не комильфо да и медленно.

x3al ★★★★★
()

возник недавно дикий спор,чуть ли не до мордобоя.нужно ли указывать .sh на скриптах написанных на bash ? располагаем их в /usr/bin/,используется только в одном месте скрипт. принимаю мнения

Не по тому поводу мордобой устраиваете. Морду нужно бить за размещение самопальных скриптов в /usr/bin/. Вот за это можно и канделябром. А .sh, .pl, .py, .rb, .awk, .lua, и прочие лучше указать явно, IMHO.

anonymous
()
Ответ на: комментарий от tux-eda

а вот ещё. ${foo} VS $foo

Привыкать писать нужно ${foo}, для наколенных поделок-однодневок можно и $foo, IMHO.

anonymous
()
Ответ на: комментарий от baverman

~/bin это захламление домашней директории, за это кстати не нравится мне макось, сраные ~/Library, ~/Applications и еще куча обязательного мусора.

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

~/bin это захламление домашней директории, за это кстати не нравится мне макось, сраные ~/Library, ~/Applications и еще куча обязательного мусора.

Кстати, коллега, кроме захламления, это грозит червячками и прочими бот-нетами в родном уютненьком хомячке. Программеру или админу «noexec» на /home/ не в продакшене, разумеется, будет только мешать, но простому пользователю и в продакшене «noexec» на /home/ необходим, как мытьё рук перед едой.

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

червячками и прочими бот-нетами в родном уютненьком хомячке

И часто ты такое встречал?

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

Что удачи? Расскажи же о своих червяках.

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

~/bin это захламление домашней директории

Это меньше процента (у меня) от его содержимого. Вообще не парит.

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

Да, не прав, в три раза меньше. Но тоже ни на что не влияет.

baverman ★★★
()

тему нужно перенести в Talks, она ужасно баянистая

st4l1k ★★
()

1. Если это скрипт, который используется из shell - не нужно, т.к. скрипт предоставляет свой интерфейс остальному миру, а в названии интерфейса нехорошо указывать на конкретную реализацию.

Вдруг тебе потом захочется переписать его на Perl? Получится либо введение в заблуждение ради сохранения совместимости, либо потеря совместимости.

2. А вот если этот файл инклюдится другим скриптом, то тут уже расширение нужно, т.к. важны детали реализации.

Как-то так.

snizovtsev ★★★★★
()

Можно повесить симлинк без .sh в названии на исполняемый .sh в /usr/local/lib или где-нибудь в хомяке. /usr/bin - только для пакетов.

Про переменные - почти всегда юзаю $asdf. Если предполагаются спецсимволы (всё, кроме букв и цифр), то всегда ${asdf}.

lu4nik ★★★
()
Ответ на: комментарий от tux-eda

${foo} VS $foo

вы оба не правы, надо

"${foo}"
конченные ёлочки!!!
ненавижу дегенератов!

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

дабы не быть голословным

/usr/bin/gt:#!/bin/bash
/usr/bin/apt:#!/bin/bash
/usr/bin/jar:#!/bin/bash
/usr/bin/jdb:#!/bin/bash
/usr/bin/jps:#!/bin/bash
/usr/bin/xjc:#!/bin/bash
/usr/bin/bcop:#!/bin/bash
/usr/bin/euse:#!/bin/bash
/usr/bin/idlj:#!/bin/bash
/usr/bin/java:#!/bin/bash
/usr/bin/jhat:#!/bin/bash
/usr/bin/jmap:#!/bin/bash
/usr/bin/orbd:#!/bin/bash
/usr/bin/rmic:#!/bin/bash
/usr/bin/rmid:#!/bin/bash
/usr/bin/wsimport:#!/bin/bash
/usr/bin/serialver:#!/bin/bash
/usr/bin/extcheck:#!/bin/bash
/usr/bin/scrollkeeper-extract:#!/bin/bash
/usr/bin/chromium-browser:#!/bin/bash
/usr/bin/keytool:#!/bin/bash
/usr/bin/eread:#!/bin/bash
/usr/bin/javac:#!/bin/bash
/usr/bin/javah:#!/bin/bash
/usr/bin/javap:#!/bin/bash
/usr/bin/jinfo:#!/bin/bash
/usr/bin/jstat:#!/bin/bash
/usr/bin/revdep-rebuild:#!/bin/bash
/usr/bin/scrollkeeper-config:#!/bin/bash
/usr/bin/kernel-config:#!/bin/bash
/usr/bin/wsgen:#!/bin/bash
/usr/bin/rarian-sk-config:#!/bin/bash
/usr/bin/rc-config:#!/bin/bash
/usr/bin/native2ascii:#!/bin/bash
/usr/bin/appletviewer:#!/bin/bash
/usr/bin/java-config:#!/bin/bash
/usr/bin/lddtree:#!/bin/bash
/usr/bin/rarian-sk-extract:#!/bin/bash
/usr/bin/emerge-webrsync:#!/bin/bash
/usr/bin/ControlPanel:#!/bin/bash
/usr/bin/schemagen:#!/bin/bash
/usr/bin/eselect:#!/bin/bash
/usr/bin/scrollkeeper-update:#!/bin/bash
/usr/bin/tzselect:#!/bin/bash
/usr/bin/revdep-rebuild.sh:#!/bin/bash
/usr/bin/rarian-sk-update:#!/bin/bash
/usr/bin/profile-config:#!/bin/bash
/usr/bin/lafilefixer:#!/bin/bash
/usr/bin/ebuild-ccache:#!/bin/bash
/usr/bin/localepurge:#!/bin/bash
/usr/bin/einstall-ccache:#!/bin/bash
/usr/bin/lesspipe:#!/bin/bash
/usr/bin/symtree:#!/bin/bash
/usr/bin/binutils-config:#!/bin/bash
/usr/bin/chromium:#!/bin/bash
/usr/bin/selfcflags:#!/bin/bash
/usr/bin/javaws:#!/bin/bash
/usr/bin/jrunscript:#!/bin/bash
/usr/bin/postgresql-config:#!/bin/bash
/usr/bin/jstack:#!/bin/bash
/usr/bin/jstatd:#!/bin/bash
/usr/bin/run-java-tool:#!/bin/bash
/usr/bin/tnameserv:#!/bin/bash
/usr/bin/servertool:#!/bin/bash
/usr/bin/jarsigner:#!/bin/bash
/usr/bin/gcc-config:#!/bin/bash
/usr/bin/lesspipe.sh:#!/bin/bash
/usr/bin/bashcomp-config:#!/bin/bash
/usr/bin/pack200:#!/bin/bash
/usr/bin/java-1.5-fixer:#!/bin/bash
/usr/bin/HtmlConverter:#!/bin/bash
/usr/bin/jsadebugd:#!/bin/bash
/usr/bin/install-catalog:#!/bin/bash
/usr/bin/einstall:#!/bin/bash
/usr/bin/scrollkeeper-rebuilddb:#!/bin/bash
/usr/bin/ebuild-debug:#!/bin/bash
/usr/bin/einstall-debug:#!/bin/bash
/usr/bin/usb-devices:#!/bin/bash
/usr/bin/javadoc:#!/bin/bash
/usr/bin/alsa-info:#!/bin/bash
/usr/bin/rarian-sk-rebuild:#!/bin/bash
/usr/bin/rmiregistry:#!/bin/bash
/usr/bin/java-check-environment:#!/bin/bash
/usr/bin/policytool:#!/bin/bash
/usr/bin/jconsole:#!/bin/bash
/usr/bin/jcontrol:#!/bin/bash
/usr/bin/jvisualvm:#!/bin/bash
/usr/bin/gnome-doc-tool:#!/bin/bash
подумай над этим

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