Инструменты пользователя

Инструменты сайта


service:bash

Это старая версия документа!


command1 ; command2 - выполнить последовательно две команды
command1 & command2 & - выполнить две команды, не дожидаясь их завершения
command1 && command2 - вторая команда выполняется, если первая завершилась успешно (код возврата 0)
command1 || command2 - вторая команда выполняется, если код возврата первой не 0

Виктор Костромин - Линукс для пользователя

Проверка даты истечения сертификата SSL

URL='www.yandex.ru'
EXP=$(date -d "$(timeout 1 openssl s_client -showcerts -connect $URL:443 -servername $URL 2>/dev/null | openssl x509 -noout -dates |grep 'notAfter' |cut -d '=' -f2)" +%s)
echo $(((`echo $EXP` - `date +%s`) / 86400))

IFS

Спец. переменная - разделитель полей.

# Стандартное значение - <space><tab><newline>
IFS=$' \t\n'
 
# В скриптах перед изменением значения IFS лучше сохранить старое значение, чтобы потом вернуть его обратно
# 1. Save old $IFS
oldIFS="$IFS"
# 2. Now set up a new value to: 
IFS=":"
# 3. Search for the user named 'vivek' /etc/passwd and store result into $result
result="$(grep -w ^vivek /etc/passwd)"
echo "$result"
# 4. Print user 'vivek's directory  and shell fields 
set -- $result
echo "DIR: $6"
echo "Shell: $7"
# 5. Try bash for loop
for i in $result; do echo "$i"; done
# 6. Restore $IFS
IFS="$oldIFS"

Есть другие варианты:

# Search for the user named vivek and print home directory
# The -F':' set ':' for the input field separator and value of $IFS always ignored 
awk -F':' '/vivek/{ print $6}' /etc/passwd
 
# Search for the user named vivek and print home directory
# The -d':' set ':' for the input field separator and value of $IFS always ignored 
grep -w "^vivek" /etc/passwd | cut -d':' -f6

https://bash.cyberciti.biz/guide/$IFS

service/bash.1724392174.txt.gz · Последнее изменение: 23.08.2024 05:49 — viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki