У меня есть скрипт bash, который запрашивает у пользователя количество ядер ЦП и сохраняет его в переменной с именем $cores
. Теперь я хочу добавить эту переменную в .bashrc
, поэтому я спрашиваю пользователя, сколько у него ядер ЦП, а затем хочет ли он сохранить это значение в .bashrc
.
Теперь вопрос: как проверить, $cores
существует ли уже, .bashrc
чтобы скрипт не спрашивал пользователя снова?
решение1
Вместо того, чтобы спрашивать пользователя, сколько ядер у системы, почему бы просто не спросить систему? Это лучше, потому что не предполагает записи в файл, принадлежащий пользователю. Смотрите что-то вродеэтот, который использует 'getconf' для запроса переменной NPROCESSORS_CONF. Или для других систем, идеи, представленныездесьможет быть полезно - использование sysctl
или grep /proc/cpuinfo
для определения количества ядер.
решение2
Попробуй это:
'awk /\$core/ { print }'
решение3
Проверить, установлена ли переменная в bash, можно с помощью:
if [[ -z "$cores" ]]
then
echo "not set"
else
echo "set"
fi
Это проверит, $cores
установлена ли переменная или нет. То есть, если $cores равен null, то будет отображено "not set", в противном случае "set". На самом деле, .bashrc
не является источником автоматически для неинтерактивных оболочек, таких как те, которые запускаются при выполнении скрипта оболочки. Поэтому вы должны поместить . .bashrc
около начала вашего .bash_login
файла, чтобы гарантировать, что .bashrc
он является источником как для интерактивных оболочек с входом, так и для не-входом.