不带空格的字符串连接形成文件路径

问题描述 投票:0回答:2

我目前正在调试一些预先编写的 csh 脚本以使它们可执行。在组合两个字符串来创建完整的文件路径时,我遇到了一些问题。

我需要合并文件路径:

rdir = ../picks/rec_files/REC_FILE_

具有动态文件名:

mcs = 68320
nm = ${mcs}.txt (for example)

当尝试组合这两个字符串时,输出在变量之间有大量空白,我不确定如何消除它们。任何帮助将不胜感激。

我尝试过的:

  1. file = ${rdir}${nm}

output = ../picks/rec_files/REC_FILE_                   68320.txt

  1. file = echo ${rdir}${nm}

output = ../picks/rec_files/REC_FILE_                   68320.txt

  1. file = "${rdir}${nm}"

output = ../picks/rec_files/REC_FILE_                   68320.txt

  1. file = echo `${rdir}${nm}` 

output = ../picks/rec_files/REC_FILE_                   68320.txt

我所期待的:

output = ../picks/rec_files/REC_FILE_68320.txt

linux bash concatenation
2个回答
0
投票

不确定你在做什么,因为格式错误,但你应该这样做

bash% rdir='../picks/rec_files/REC_FILE_'
bash% mcs='68320'; nm="${mcs}.txt"
bash% file="$rdir/$nm"
bash% echo "'$file'"
'../picks/rec_files/REC_FILE_/68320.txt'

您可以验证没有多余的空格。


-1
投票

您好,欢迎来到 StackOverflow。

无论您使用哪种 shell 变体,一种可靠的方法是通过管道传输连续变量并使用流编辑器从空间中清理它们,如这篇文章中所示。

表达式将给出

echo ${rdir}${nm}  | sed 's/ //g' 

© www.soinside.com 2019 - 2024. All rights reserved.