В RHEL 5 я использую git -1.8.2.3 -1.el5 из Epel 5:
# rpm -qi git
Name : git Relocations: (not relocatable)
Version : 1.8.2.3 Vendor: Fedora Project
Release : 1.el5 Build Date: Di 26 Apr 2016 19:30:16 CEST
Кажется, требуется OpenSSL 1:
# ldd /usr/bin/git-remote-https
libssl.so.10 => /lib/libssl.so.10 (0x00b2a000)
libcrypto.so.10 => /lib/libcrypto.so.10 (0x00595000)
В моей системе это решается следующим:
# rpm -qf /lib/libssl.so.10
openssl1-1.0.1e-57.el5_11
А этот взят из "Tuxad Repo" :https://unix.stackexchange.com/a/459187/284960
У меня нет проблем с клонированием с github.
Итак, поговорим об этом:
$ seq1="$(seq -f "number-%g" 0 4)"
$ seq2="$(seq -f "number-%g" 5 9)"
$ elem="number-10"
$ all=("${seq1[@]}" "${seq2[@]}" "${elem}")
$ declare -p all
declare -a all=([0]=$'number-0\nnumber-1\nnumber-2\nnumber-3\nnumber-4' [1]=$'number-5\nnumber-6\nnumber-7\nnumber-8\nnumber-9' [2]="number-10")
$ for e in $all; do echo $e; done
number-0
number-1
number-2
number-3
number-4
Обратите внимание declare -p
--, что это очень удобно для проверки содержимого переменных.
all
является массивом . Когда вы разыменовываете это как $all
, вы фактически выполняете ${all[0]}
--, то есть только извлекаете первый элемент .
Видите, массив all
состоит только из 3 элементов? Переменные seq1
и seq2
являются не массивами , а простыми "скалярными" переменными. Как и в предыдущем абзаце, вы можете использовать синтаксис элемента массива для ссылки на скалярные переменные :
$ x="hello world"
$ declare -p x
declare -- x="hello world"
$ echo "$x"
hello world
$ echo "${x[0]}"
hello world
$ echo "${x[1]}"
$ echo "${x[*]}"
hello world
$ echo "${x[@]}"
hello world
Если вы хотите выполнить внешнюю команду и захватить строк вывода , используйте команду mapfile
. Вам также необходимо использовать подстановку процесса для вызова внешней команды.
$ unset seq1 seq2 all
$ mapfile -t seq1 < <(seq -f "number-%g" 0 4)
$ mapfile -t seq2 < <(seq -f "number-%g" 5 9)
$ all=("${seq1[@]}" "${seq2[@]}" "${elem}")
$ declare -p all
declare -a all=([0]="number-0" [1]="number-1" [2]="number-2" [3]="number-3" [4]="number-4" [5]="number-5" [6]="number-6" [7]="number-7" [8]="number-8" [9]="number-9" [10]="number-10")
$ printf "%s\n" "${all[@]}"
number-0
number-1
number-2
number-3
number-4
number-5
number-6
number-7
number-8
number-9
number-10
Чтобы сгенерировать эту последовательность в bash без использования каких-либо внешних инструментов, используйте Brace Expansion:
$ all=( "number-"{0..10} )
$ declare -p all
declare -a all=([0]="number-0" [1]="number-1" [2]="number-2" [3]="number-3" [4]="number-4" [5]="number-5" [6]="number-6" [7]="number-7" [8]="number-8" [9]="number-9" [10]="number-10")