J V
J V

Reputation: 3

Syntax error when calling variable in bash

Here is my code:

#!bin/bash

id=$(sshpass -p password ssh -tt username@ipaddress -p PORT "grep --include=\*.cr -rlw '/usr/local/bin/' -e '$1' | cut -c16-")
echo $id
sshpass -p password rsync -avHPe 'ssh -p PORT' username@ipaddress:/usr/local/bin/"$id" /usr/local/bin/

id echos correctly, but I get an rsync error when trying to call the variable.

If I manually populate and run rsync, the command works, so I'm not sure what is going on.

Rsync gives me the following output on error.

rsync: link_stat "/usr/local/bin/match.cr\#015" failed: No such file or directory (2)

It seems to be grabbing extra characters? Any help is appreciated :)

Upvotes: 0

Views: 54

Answers (1)

Zac R.
Zac R.

Reputation: 548

Looks like your file contains Windows specific "CR LF" characters. You need to convert these to Linux specific "LF" characters in your script. You can use a tool like dos2unix or Notepad++.

Upvotes: 1

Related Questions