![](/img/trans.png)
[英]How to run a shell/bash switch case in a Makefile variable assignment?
[英]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.