尝试从 UTC()
bash 函数返回一个字符串到 $SST
变量,然后用 echo 打印它同时调用 cwd
在做 echo 时。
#!/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."
最佳答案
不要尝试将命令作为字符串返回;直接执行命令即可。
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")")
关于linux - 返回当前 UTC 时间字符串的 Bash 函数回显它和 CWD 以及原始文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216584/