Проверьте, содержит ли строка Звездочку (*)

GNU ld компоновщик является так называемым умным компоновщиком. Это будет отслеживать функции, используемые путем предшествования статическим библиотекам, постоянно выбрасывания тех функций, которые не используются из его таблиц поиска. Результат состоит в том, что при соединении статической библиотеки слишком рано, тогда функции в той библиотеке больше не доступны статическим библиотекам позже строка ссылки.

типичный компоновщик UNIX работает слева направо, таким образом, помещает все Ваши зависимые библиотеки слева и тех, которые удовлетворяют те зависимости справа от строки ссылки. Можно найти, что некоторые библиотеки зависят от других, в то время как одновременно другие библиотеки зависят от них. Это - то, где это сложно. Когда дело доходит до циклических ссылок зафиксируйте свой код!

8
задан William Pursell 8 July 2013 в 13:00
поделиться

5 ответов

Всегда заключайте строки в кавычки.

Чтобы проверить, содержит ли строка $ date_alarm звездочку, вы можете сделать:

if echo x"$date_alarm" | grep '*' > /dev/null; then
    ...
fi 
4
ответ дан 5 December 2019 в 21:20
поделиться

Наконец,

if echo x"$date_alarm" | grep '*' > /dev/null; then

помогло

Странная вещь = ~. *. не работает только в контексте инициализации при завершении работы, но отлично работает при запуске в контексте bash ....

0
ответ дан 5 December 2019 в 21:20
поделиться
if echo $date_alarm|perl -e '$_=<>;exit(!/\*/)'
then
    ...
fi
0
ответ дан 5 December 2019 в 21:20
поделиться
case "$date_alarm" in
*\**)
  ...
  break
  ;;
*)
  # else part
  ...
  ;;
esac

Синтаксис, в общем, / bin / sh, но он работает.

1
ответ дан 5 December 2019 в 21:20
поделиться

что произойдет, если вы замените

if [[ $date_alarm =~ .*\*.* ]]

на

if [[ "$date_alarm" =~ .*\*.* ]]

, вы также можете попробовать:

if [[ "$date_alarm" =~ '\*+' ]]

не уверен насчет этого ...

касается

0
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: