Bash 函数 returns 当前 UTC 时间字符串与 CWD 和原始文件名相呼应

Bash function that returns string of current UTC time echoes it and CWD and original filename

尝试将 return 来自 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 "[=12=]" && readlink "[=12=]" || echo "[=12=]")")"
echo -e "Started '$me' from '$owd' with 'cwd'='`$(cwd)`' @ $SST."

不要尝试 return 命令作为字符串;直接执行命令即可。

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 "[=12=]" && readlink "[=12=]" || echo "[=12=]")")