از گوگل پرسیدم :
system("./abc.sh"); // abc.sh should be chmod +x
استفاده از system در صورتیکه برنامه فقط روی سیستم خودتون قرار باشه اجرا بشه خوبه ! اما اگر قرارباشه برنامه جای دیگه اجرا بشه راه اصولی استفاده از fork و exec هست . ( دلیل : چون سیستم های مختلف ورژن های مختلف از bash دارند و بعضی ها از ksh ، tcsh و ... استفاده میکنند و اینها تفاوتهایی با هم دارند باعث میشه برنامه شما عملکرد یکسانی در سیستم های مختلف نداشته باشه ) .
با استفاده از دستور fork یک فورک از برنامه در حال اجرا میگیرید و با استفاده از دستورexec پروسس فرزند رو تغییر میدید . با استفاده از روالهای ورودی استاندارد هم میتونید از صفحه کلید دیتا بگیرید و توی پروسس فرزند ( که اینجا همون برنامه abc شما میشه ) پروسسشون کنید .
برای مطالعه بیشتر کتاب Linux system Programming اثر Robert Love فصل پنجم رو ( فکر کنم ) بخونید