我设置了4个shell变量

remote_account="raccname"
remote_machine="server"
First_Name="firstname"
Last_Name="lastname"

当我在脚本中调用remote_accountremote_machine时,它们会被很好地使用
echo "What directory shall you choose?"
  read dir
  scp -r ~/csc60/$dir $remote_account@$remote_machine:directoryA
  exit;;

但当我这样称呼另外两个人的时候
echo "What directory shall you choose?"
  read dir
  scp $remote_account@$remote_machine:tars/$Last_Name_$First_Name_$dir.tar.z ~/tars
  exit;;

它从tars/$dir.tar.z中获取tars文件,完全跳过$Last_Name_$First_Name_
当我抛出echo $Last_Name时,它仍然显示为“lastname”
变量之间是否有使用“u”的规则,或者我只是遗漏了一些显而易见的东西?

最佳答案

_是变量名的有效字符,因此必须限定哪个部分是变量。

scp "$remote_account@$remote_machine:tars/${Last_Name}_${First_Name}_$dir.tar.z" ~/tars

08-16 03:03