‎Echo : -n vs \c‎

به طوری که تا به حال شاید توجه نموده باشید،وقتی از دستور echo استفاده می‌کنید، یک سطر جدید به انتهای دستور اضافه می‌شود. یک تعمیر برای این مورد موجود است ... خوب، به طور دقیق‌تر، دو روش برای رفع آن موجود است.

برخی سیستم‌های یونیکس از ‎ echo -n message‎ برای این که به echo بگویند سطر جدید اضافه نکند، استفاده می‌کنند، دیگران ‎ echo message \c‎ را برای گفتن همان مورد، به کار می‌برند:
echo -n "Enter your name: "
read name
echo "Hello, $name"
این در برخی سیستم‌ها کار می‌کند ، و اینطور دیده می‌شود:
Enter your name: Steve
Hello, Steve
هرچند در دیگر سیستم‌ها باید کد را به این شکل بنویسید
echo "Enter your name: \c"
read name
echo "Hello, $name"
که همان نتایج را برای آن سیستم‌ها خواهد داشت.

خوب، این یک دردسر است. در این‌جا روشی را که در هردو کار خواهد کرد می‌آورم:

         if [ "`echo -n`" = "-n" ]; then
	  	n=""
	  	c="\c"
         else
	  	n="-n"
	  	c=""
         fi

  echo $n Enter your name: $c
  read name
  echo "Hello, $name"
اگر ‎ echo -n‎ به طور صحیح تفسیر نشود، فقط ‎ -n‎ را بازتاب می‌دهد، که در این حالت ‎ $n ‎  به رشته تهی تنظیم می‌شودد، و ‎ $c ‎  به ‎ \c ‎  تنظیم می‌شود. در غیر این صورت برعکس آن انجام می‌شود، به طوری که ‎ $n‎ به ‎ -n‎ تنظیم می‌گردد، و ‎ $c‎ به رشته تهی تنظیم می‌شود.
Steve Parker  نوشته  Bourne و Bash راهنمای آموزشی اسکریپت نویسی
لطفاً برای بهتر دیدن صفحه از فایرفاکس استفاده کنید