簡體   English   中英

如何在bash shell中處理變量賦值?

[英]how variable assignment to be processed in bash shell?

我對如何在shell中處理變量賦值感到困惑。

例如:

  var=demo
  foo=$var

$ var將被擴展,而$ foo將是“ demo”。

但是如果寫為:

   count=0
   a_${count}=filename

bash報告: a_0 =文件名:找不到命令

從錯誤消息中,我們知道a _ $ {count}已擴展為a_0,那么為什么變量分配不能工作? 我還發現是否以其他方式編寫:

   count=0
   filename=a_${count}

一切都會好的,這些之間有什么區別?

變量賦值的左側不能有表達式。

您可以改為使用declare

declare a_${count}=filename

然后驗證:

echo "$a_0"
filename

問題是如果可能的話,變量分配會在擴展之前發生。 如果不是,則將a_$count=filename擴展並理解為要運行的命令。 你可以把它變成一個命令使用延遲分配declare

declare a_$count=filename

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM