Если это ключ, который используется достаточно часто, хитрость заключается в том, чтобы добавить этот ключ в цепочку для ключей:
eval `keychain --eval --agents ssh id_rsa a_test.tester_key
После этого будет использоваться правая клавиша.
Если кто-то использует ключ реже или использует много разных ключей, лучше просто остановить связку ключей для этого.
Вот более специфичный для bash синтаксис.
i=3 n=0
while read -r line; do
((n >= i )) && echo "$line"
((n++))
done < file
Это зависит от того, что вы хотите сделать со строками, но если вы можете обернуть их в обратный вызов и иметь bash версии 4+, вы можете использоватьmapfile
(или его синонимreadarray
)с его-s
(пропустить опцию ).
Пр. дано
$ echo "$LINES"
----
Test
----
1,2,3
1,2,4
etc
затем после определения
myfunc() { printf "%s\n" "$2"; }
можешь сделать
$ mapfile -t -s3 -c1 -C 'myfunc' <<< "$LINES"
1,2,3
1,2,4
etc
Учитывая, что содержимое переменной аналогично упомянутому, чтение данных из 4-й строки $LINE
является одним из решений. Это можно сделать так:
tail +4 <<< "$LINE"
Это печатает каждую строку с 4-й строки $LINE
до последней строки.
Если вы хотите, чтобы его результат использовался внутри while
, лучше подойдет
while IFS= read -r; do echo $REPLY; done <<< "$(tail +4 <<< "$LINE")"
.