linux - 返回当前 UTC 时间字符串的 Bash 函数回显它和 CWD 以及原始文件名

标签 linux bash unix

尝试从 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/

相关文章:

c - 如何使用fork按特定顺序执行系统命令

Bash for 循环获取上一个和下一个项目

bash - Bash 中的动态变量名称

linux - bash 通配符 n 位

shell - 可恢复脚本的最佳选择

python - Sha256 返回不正确的哈希值?

c - 变量名与 GDB 调试器冲突

linux - 在for循环中将一个文件中的两列分隔为两个单独的文件

python - 为python3.3安装pip

java - 子文件夹不是通过 java 通过 scp 命令复制的