GNU ld компоновщик является так называемым умным компоновщиком. Это будет отслеживать функции, используемые путем предшествования статическим библиотекам, постоянно выбрасывания тех функций, которые не используются из его таблиц поиска. Результат состоит в том, что при соединении статической библиотеки слишком рано, тогда функции в той библиотеке больше не доступны статическим библиотекам позже строка ссылки.
типичный компоновщик UNIX работает слева направо, таким образом, помещает все Ваши зависимые библиотеки слева и тех, которые удовлетворяют те зависимости справа от строки ссылки. Можно найти, что некоторые библиотеки зависят от других, в то время как одновременно другие библиотеки зависят от них. Это - то, где это сложно. Когда дело доходит до циклических ссылок зафиксируйте свой код!
Всегда заключайте строки в кавычки.
Чтобы проверить, содержит ли строка $ date_alarm звездочку, вы можете сделать:
if echo x"$date_alarm" | grep '*' > /dev/null; then ... fi
Наконец,
if echo x"$date_alarm" | grep '*' > /dev/null; then
помогло
Странная вещь = ~. *. не работает только в контексте инициализации при завершении работы, но отлично работает при запуске в контексте bash ....
if echo $date_alarm|perl -e '$_=<>;exit(!/\*/)'
then
...
fi
case "$date_alarm" in
*\**)
...
break
;;
*)
# else part
...
;;
esac
Синтаксис, в общем, / bin / sh, но он работает.
что произойдет, если вы замените
if [[ $date_alarm =~ .*\*.* ]]
на
if [[ "$date_alarm" =~ .*\*.* ]]
, вы также можете попробовать:
if [[ "$date_alarm" =~ '\*+' ]]
не уверен насчет этого ...
касается