bash dir字符串构造命令在一行中

时间:2014-11-30 12:43:54

标签: bash shell unix command

dir=$(pwd; echo '/hi/'; date "+%Y_%m_%d-%H_%M_%S")

echo $dir

给出

/some/path/hear /hi/ 2014_11_30-12_40_17

为什么有空格? 如何使用空格在一行中创建此路径?

由于

4 个答案:

答案 0 :(得分:3)

最简单的方法,我认为:

dir="$(pwd)/hi/$(date '+%Y_%m_%d-%H_%M_%S')"

$()表达式在此上下文中就像普通变量一样工作。

答案 1 :(得分:1)

你可以使用sed。

$ dir=$(pwd; echo '/hi/'; date "+%Y_%m_%d-%H_%M_%S")
$ dir=$(sed 's/ //g' <<< $dir)
$ echo $dir
/home/path/hi/2014_11_30-18_21_09

答案 2 :(得分:1)

这仍然有效:

$ dir=`pwd`/hi/$(date '+%Y_%m_%d-%H_%M_%S')
$ echo $dir
/home/oracle/hi/2014_11_30-14_18_30
$

有趣的是有很多方法可以做到这一点

答案 3 :(得分:0)

使用printf

$ printf '%s/hi/%s\n' "$(pwd)" "$(date "+%Y_%m_%d-%H_%M_%S")"
/home/path/hi/2014_11_30-07_53_05