در شل، عملگری(صریح) برای الحاق نمودن رشتهها (لفظی یا بدون ارجاع به متغیر) وجود ندارد، فقط میتوانید آنها را در مجاورت هم بنویسید:
var=$var1$var2
اگر طرف راست شامل کاراکترهای فضای سفید باشد، لازم است که نقلقولی بشود:
var="$var1 - $var2"
اگر شما رشتهای الحاق میکنید که به قسمتی از نام متغیر شباهتی ندارد، تنها تمام آنها را در کنار یکدیگر قرار بدهید:
var=$var1/.-
در غیر این صورت، ابروها یا نقلقولها میتوانند برای رفع ابهام طرف راست به کار بروند:
var=${var1}xyzzy # به عنوان نام متغیر تفسیر خواهد شد var1xyzzy بدون ابروها var="$var1"xyzzy # ترکیب دستوری جایگزین
جایگزینی فرمان به خوبی میتواند به کار برود. سطر زیر یک فایل ثبت وقایع logname متشکل ازتاریخ جاری ایجاد میکند، که منجر به نامهایی به عنوان مثال مانند log.2004-07-26 میشود:
logname="log.$(date +%Y-%m-%d)"
تفاوتی میان استفاده مجدد نام یک متغیر یا تخصیص مجدد مقدار(رشتهای که نگاه میدارد) دلخواه به آن، وجود ندارد:
string="$string more data here"
Bash (از) نگارش 3.1 عملگر جدید += را دارد که ممکن است گاه گاهی ببینید:
string+=" more data here" # !بینهایت غیرقابل حمل
به طور معمول بهترین کار استفاده از ترکیب دستوری قابل حمل است.
پرسش و پاسخ 13 (آخرین ویرایش 2009-12-30 08:27:15 توسط MatthiasPopp)