[英]Variable assignment convention in shell scripts
在 bash 腳本中, =
號的兩邊似乎都不允許有空格。 例如:
# bad
a= "ok"
# bad
a ="ok"
# bad
a = "ok"
# good
a="ok"
這在所有shell
種語言中都是一樣的,還是特定於 bash 的? 出於好奇,為什么賦值運算符旁邊不允許有空格?
對於特定的 shell,您需要查找 shell 的文檔。對於bash
,要求該形式中沒有空格(請注意=
的兩邊都沒有空格):
變量可以通過
name=[value]
形式的語句賦值。
出現這種情況的原因之一是您可以使用命令時態賦值,其中變量僅在命令執行期間設置:
pax:~> x=314159 ; echo $x
314159
pax:~> x=42 bash -c 'echo $x'
42
pax:~> echo $x
314159
在作業中留有空格會使弄清楚作業在哪里結束以及命令從哪里開始變得有點困難。 例如:
x= echo echo hello
這應該將x
設置為echo
然后運行echo hello
還是應該將x
設置為""
然后運行echo echo hello
?
如果你想讓你的作業很好地用空格格式化,你可以使用((...))
算術評估:
pax:~> (( val = 117 / 3 )) ; echo $val
39
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.