Я хочу проверить, вводит ли пользователь что-то вроде ls&
или ls &
, так что я смогу установить bg_flag
для фоновых заданий в оболочке. однако следующий код не может быть проверен на ls&&
. потому что я не хочу, чтобы это считалось фоновой работой (я не уверен, что это то же самое в оболочке Linux), если пользователь вводит ls&&
или что-то еще с более чем одним &
в конце.Как проверить, является ли экземпляр подстроки в конце строки и только один раз (скажем, используя strstr)?
if (strstr(args[arg_count-1],"&")!=NULL)
//if (strcmp(args[arg_count-1],"&")==0)
{
bg_flag=1;
printf("I am a background job %d ",getpid());
}
Сообщите мне, что это подходящий способ для этого?
Возможно, что-то вроде «strstr (p,« & ») &&! Strstr (p," && ")"? –