我从远程目录获取文件列表。现在我想知道这些文件是否存在于本地目录中。我的问题是,\r每个文件名的字符串中的 是不可修剪的。我之前在第四行做过,效果很好。
numOfRemoteFiles=`expect countRemoteFiles.sh $user $remotedir $password $N |
tail -1 | tr -d '\r'`
numOfRemoteFiles=$((numOfRemoteFiles-1))
for remotef in `expect forLocalDir.sh $user $remotedir $password $N | tail -n$numOfRemoteFiles`
do
remotef=${remotef##*/}
remotef=$remotef | tr -d '\r'
if [ ! -f $localdir/$remotef ]; then
expect receiveFile.sh $user $localdir $remotedir $password $N $remotef
fi
done
Run Code Online (Sandbox Code Playgroud)
我以 ascii 和 hex 格式打印了文件名,结果如下:
test1.txt
0000000 74 65 73 74 31 2e 74 78 74 0d 0a
0000013
test2.txt
0000000 74 65 73 74 32 2e 74 78 74 0d 0a
0000013
test3.txt
0000000 74 65 73 74 33 2e 74 78 74 0d 0a
0000013
Run Code Online (Sandbox Code Playgroud)
这并没有达到您的预期:
remotef=$remotef | tr -d '\r'
Run Code Online (Sandbox Code Playgroud)
你的意思可能是:
remotef=$(echo "$remotef" | tr -d '\r')
Run Code Online (Sandbox Code Playgroud)