Atom использует ветвь stable
для своих сборок стабильного выпуска, поэтому, чтобы найти последний тег для выпуска, вам нужно проверить эту ветку:
$ git describe --tags stable
v1.4.2-1-ge9db64c
Чтобы получить соответствующий тег, сохранить все до первого -
:
$ git describe --tags stable | cut -d- -f1
v1.4.2
Чтобы получить версию без ведущего v
, удалите это:
$ git describe --tags stable | cut -d- -f1 | sed 's/^v//'
1.4.2
Да, оператор return
можно использовать только для возврата статуса выхода из функции оболочки или скрипта с точкой -(сценарий, полученный с использованием либо.
(точка ), либо source
в оболочках, которые поддерживают этот псевдоним для.
). В этом отношении функции оболочки и скрипты с точкой -очень похожи.
Код, который вы показываете, содержит оператор return
в качестве последнего исполняемого оператора, и это может быть причиной ошибки, если вы запустили скрипт как обычный скрипт.
Вполне может быть, что ваш скрипт должен выполняться как
../script.sh
, а не как
./script.sh
или что другой скрипт должен делать это (неизвестно ). Если вы запустите скрипт с помощью команды точки (или source
, например, в. bash
), обратите внимание, что вы останетесь в /ERQ/100/DM/SCRIPTS
после окончания выполнения скрипта (, так как именно здесь скрипт меняет рабочий каталог при выходе из ).
Также обратите внимание, что скрипт использует какой-то странный код для выполнения обычных действий. Например, чтобы проверить, определено ли $ARCHIVE_PATH
, выполняется
VARCHECK=`echo $ARCHIVE_PATH | wc -w`
if [ $VARCHECK = "0" ]
Этот тест проверял не то, было ли оно неопределенным, а было ли оно пустым (или содержало только символы из$IFS
). На самом деле более половины сценария занимают операторы, проверяющие настройки конфигурации.
Вместо этого можно использовать
if [ "${ARCHIVE_PATH-is unset}" = "is unset" ]
или в bash
,
if [ ! -v ARCHIVE_PATH ]
или, если вы просто хотите проверить пустое значение,
if [ -z "$ARCHIVE_PATH" ]
Сценарий также использует ls
в нескольких местах для получения списков файлов, что далеко не идеально.