RSS — это объем памяти без возможности замены, который не считается свободной памятью. Это часть используемой памяти. И не забывайте, что столбец VSZ показывает объем памяти, занимаемой процессом.
Вы можете использовать да (1 ), что вообще не потребует каких-либо изменений в вашем скрипте.
$ grep. test.sh
#!/bin/bash
read -rp 'What say you? ' answer
echo "Answer is: $answer"
read -rp 'And again? ' answer2
echo "Answer 2 is: $answer2"
$
$ yes |./test.sh
Answer is: y
Answer 2 is: y
Указанное ругательство будет повторяться бесконечно, если оно не указано, оно будет использоваться по умолчанию y
.
Если вы используете read
только для этих вопросов, а переменная всегда называется answer
, заменитеread
:
# parse options, set "$yes" to y if --yes is supplied
if [[ $yes = y ]]
then
read () {
answer=y
}
fi
Я бы поместил всю логику принятия решения в функцию, как проверяющую автоматический режим -, так и, возможно, опрашивающую пользователя. Затем вызовите только это с основного уровня в каждом случае. want_act
ниже возвращает true/falsy само по себе, нет необходимости в сравнении строк на основном уровне, и читателю ясно, что делает условие.
#!/bin/bash
[[ $1 = --yes ]] && yes_mode=1
want_act() {
[[ $yes_mode = 1 ]] && return 0
read -r -p "Include step '$1' (y/n)? " answer
[[ $answer = [Yy]* ]] && return 0
return 1
}
if want_act "frobnicate first farthing"; then
echo "frobnicating..."
fi