尝试将UTC()
bash函数中的字符串返回到$SST
变量,然后使用echo打印它,同时在执行回显时调用cwd
。
#!/bin/bash
UTC(){ return "$(`date -u \"+%FT%TZ\"`)" }
SST="$(UTC)"; #ISO 8601 Script Start Time
owd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Path to THIS script.
me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"
echo -e "Started '$me' from '$owd' with 'cwd'='`$(cwd)`' @ $SST."
答案 0 :(得分:2)
不要尝试将命令作为字符串返回;直接执行命令。
UTC() { date -u "+%FT%TZ"; }
当前目录命令为pwd
而非cwd
。你有两个反引号`...`
和$(...)
。你只需要一个或另一个。
echo -e "Started '$me' from '$owd' with 'cwd'='$(pwd)' @ $SST."
最后,如果您愿意,可以删除变量赋值中的引号。严格来说,他们没有必要,但如果你不确定,那么在引用方面犯错是没有错的。
SST=$(UTC)
owd=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
me=$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")