我的bash代码file.sh
:
username=$1
pkgpath="/home/${username}_tmp.txt"
echo $username
echo $pkgpath
现在使用命令bash file.sh abc
运行脚本应该产生结果:
abc
/home/abc_tmp.txt
但我得到的输出是:
abc
_tmp.txtc
有人可以解释为什么会发生这种行为以及如何获得所需的结果?
的修改
我想提一下,使用pkgpath="/home/${username}"
给我/home/abc
(所需),但正在运行pkgpath="${username}_tmp.txt"
会给我_tmp.txt
(奇怪)。
答案 0 :(得分:0)
当您运行命令render
时,看起来您在abc
之后以某种方式插入回车符。罪魁祸首可能是你的终端,或者你是复制粘贴命令并且包括bash file abc
而没有意识到。
那么在第二行输出的bash实际上是^M
,它被呈现为/home/abc^M_tmp.txt
。您可以通过将命令的输出传递给_tmp.txtc
来轻松验证这一点。