{/* Make sure that `location` is injected into this component */}
<ul className="nav navbar-nav">
<li className={location.pathname === '/' && 'active'}>
<Link to='/'>
Home page
</Link>
</li>
<li className={location.pathname.startsWith('/about') && 'active'}>
<Link to='/about'>
About us
</Link>
</li>
</ul>
while [ -n $(passwd) ]; do
echo "Try again";
done;
Чтобы уточнить ответ @Marc B,
$ passwd
$ while [ $? -ne 0 ]; do !!; done
Хороший способ сделать то же самое, что не является специфичным для команды.
sudo
перед командой, вы можете просто сделать sudo !!
для запуска предыдущей команды с правами root.
– JohnEye
8 January 2015 в 14:34
Попробуйте функцию bash 'read'
echo -n "please confirm to continue (Y/n) "
read yn
case $yn in
do the rest ;)
esac
вы можете использовать цикл бесконечности
while true
do
read -p "Enter password" passwd
case "$passwd" in
<some good condition> ) break;;
esac
done
&& break
после моей команды проверки, но вместо случая выбора.
– carlin.scott
27 April 2018 в 21:19
Вместо этого вам нужно проверить $?
, что является статусом выхода предыдущей команды. passwd
завершает работу с 0, если все работает нормально и не равно нулю, если сбой пароля не был выполнен (неправильный пароль, несоответствие пароля и т. д.)
passwd
while [ $? -ne 0 ]; do
passwd
done
С вашей версией backtick вы сравнивая вывод passwd, который будет выглядеть как Enter password
и confirm password
и т. п.
until passwd; do echo "Try again"; done
– tig 19 March 2012 в 14:10until passwd; do echo "Try again"; sleep 2; done
- все, что вам нужно сделать, это нажать Ctrl-C сразу после (в течение двух секунд)echo
выполнил это задание. – Christian 23 August 2013 в 21:14kill %1
, работает здесь, когда Ctrl-C не будет – Tom 24 April 2014 в 18:36until passwd || (( count++ >= 5 )); do echo "foo"; done
(только bash, обязательно установите count на 0, если этот varaible существует) Если вам это нужно для простого sh, увеличьте счетчик в теле и используйте [] – Justin Sane 5 August 2015 в 11:53