在一行中从命令构造bash dir字符串
给予在一行中从命令构造bash dir字符串,bash,shell,unix,command,Bash,Shell,Unix,Command,给予 dir=$(pwd; echo '/hi/'; date "+%Y_%m_%d-%H_%M_%S") echo $dir 为什么会有空间? 如何使此路径在一条直线上且没有空格 谢谢您可以使用sed /some/path/hear /hi/ 2014_11_30-12_40_17 $dir=$(pwd;echo'/hi/';日期“+%Y_%m_%d-%H_%m_%S”) $dir=$(sed's///g'您可以使用sed /some/path/hear /hi/ 2014_11_30-
dir=$(pwd; echo '/hi/'; date "+%Y_%m_%d-%H_%M_%S")
echo $dir
为什么会有空间?
如何使此路径在一条直线上且没有空格
谢谢您可以使用sed
/some/path/hear /hi/ 2014_11_30-12_40_17
$dir=$(pwd;echo'/hi/';日期“+%Y_%m_%d-%H_%m_%S”)
$dir=$(sed's///g'您可以使用sed
/some/path/hear /hi/ 2014_11_30-12_40_17
$dir=$(pwd;echo'/hi/';日期“+%Y_%m_%d-%H_%m_%S”)
$dir=$(sed's///g'最简单的方法,我认为:
$ 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
在这种情况下,$()
表达式就像普通变量一样工作。最简单的方法,我认为:
$ 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
$()
表达式的工作原理与此上下文中的普通变量一样。使用printf
dir="$(pwd)/hi/$(date '+%Y_%m_%d-%H_%M_%S')"
使用printf
dir="$(pwd)/hi/$(date '+%Y_%m_%d-%H_%M_%S')"
这仍然有效:
$ printf '%s/hi/%s\n' "$(pwd)" "$(date "+%Y_%m_%d-%H_%M_%S")"
/home/path/hi/2014_11_30-07_53_05
有趣的是,有这么多的方法可以做到这一点这仍然有效:
$ printf '%s/hi/%s\n' "$(pwd)" "$(date "+%Y_%m_%d-%H_%M_%S")"
/home/path/hi/2014_11_30-07_53_05
有趣的是,有很多方法可以做到这一点