В Bootstrap 4 вы должны использовать класс text-center для выравнивания встроенных блоков.
ПРИМЕЧАНИЕ: выравнивание текста: по центру; определенный в пользовательском классе, который вы применяете к родительскому элементу, будет работать независимо от используемой вами версии Bootstrap. И это именно то, к чему применяется .text-center.
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col text-center">
<button class="btn btn-default">Centered button</button>
</div>
</div>
</div>
dash
очень строгая оболочка POSIX, если она работает в dash
, почти наверняка она будет работать в другой оболочке POSIX.
Попробуйте:
if [ "$var" = "string" ]
then
some_command
fi
Используйте =
вместо ==
. Сравнения обрабатываются тестом (1). /usr/bin/[
обычно является ссылкой на /usr/bin/test
. Единственное отличие состоит в том, что если вы используете [
в сценарии оболочки, также требуется ]
.
Обратите внимание, что в bash есть встроенные test
/ [
, поэтому он фактически не использует /usr/bin/test
.
вы можете использовать awk
awk 'BEGIN{
string1="test"
string2="tes1t"
if(s1==s2){
print "same string"
}else{
print "not same"
}
}'
Почему существует вероятность того, что ваш сценарий будет запущен "неправильной" оболочкой? Я думаю, вы могли бы сделать это предварительным условием вашего продукта, используя стандартную строку sh-bang в верхней части вашего скрипта:
#!/bin/bash
Даже если пользователь использует другую оболочку, другие оболочки обычно все еще существуют, а если нет, просто жалуйтесь и заявляйте, что они являются предварительным требованием.
Точно так же, как конкретный уровень ядра или существование awk может быть предварительным требованием.
Что касается вашего конкретного вопроса, я считаю, что и sh
, и bash
позволяют использовать одиночный знак '=' для сравнения строк - это поведение POSIX:
if [ "a" = "a" ] ; then
echo yes
fi
yes