[英]Bash assignment value to variable as command substitution and print value output
我想在Bash中實現這一點: echo $(a=1)
並輸出變量a
的值
我測試了eval
, $$a
, {}
, $()
但是它們大多數都無法正常工作,或者我得到的字面a=1
或在一種情況下(我不記得是哪個)它嘗試執行該值。
我知道我可以做到: a=1;echo $a
但由於我每行一個命令的樂趣很小(即使有時變得有點復雜),我想知道是否可以通過echo
或printf
做到這一點
如果您知道$a
之前未設置,則可以使用以下語法進行操作:
echo ${a:=1}
參數擴展和其他類型在POSIX Shell命令語言規范中定義。
如果要分配數字值,則不依賴於先前未設置的值的另一個選項是使用算術擴展:
echo $(( a = 1 ))
這將分配值並回顯已分配的編號。
值得一提的是,由於子進程無法修改其父級的環境,因此您無法通過設計在子shell中完成您要執行的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.