[英]Bash script passing environment variable as a command but not executing it?
我有以下環境變量時間戳。 我通過以下方式調用環境變量,但是 output 只是日期。 為什么它沒有給出實際的時間戳?
不是變量 TIMESTAMP 的賦值,而是它所具有的值的描述。
environment variable
TIMESTAMP=date +%Y-%m-%dT%H:%M:%S.%7NZ -d '-7 day'
input
TIMESTAMP=($TIMESTAMP)
echo "debug environment variables: $TIMESTAMP:"
output:
debug environment variables: date
考慮:
T="a b c"
T=($T)
在上面,賦值 T=($T) 等價於T=(abc)
,它使 T 成為一個數組。 對於數組 T, $T
等效於${T[0]}
,因此您的 $TIMESTAMP 僅顯示數組的第一個元素。 您可能打算寫 TIMESTAMP=$($TIMESTAMP),但是……這是一個非常糟糕的主意。 不要那樣做。 如果你從環境變量中執行任意代碼,你只是在自找麻煩。
似乎您嘗試使用 linux 命令作為值並且沒有指定variable=$(command)
來創建變量,因此,您的系統正在使用空格,就好像您正在給出不同的命令一樣。
嘗試使用TIMESTAMP=$(date +%Y-%m-%dT%H:%M:%S.%7NZ --date "-7 day")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.