-3
我發現很多相同的問題,但沒有解決方案幫助我的。爲什麼我的字符串不相等?
listingInOrder.sh
set user [lindex $argv 0]
set dir [lindex $argv 1]
set password [lindex $argv 2]
set N [lindex $argv 3]
spawn ssh [email protected]$N.physik.hu-berlin.de ls -1tr $dir | tail -1
expect "Password:"
send "$password\r"
interact
mainfile.sh
filelocal=`ls -1tr $localdir | tail -1`
fileremote=`expect listingInOrder.sh $user $remotedir $password $N | tail -1`
if [[ "$filelocal" != "$fileremote" ]]; then
echo "not equal"
echo "$filelocal"
echo "$fileremote"
fi
但輸出是:
not equal
blatt3A2.m
blatt3A2.m
所以名稱是相等的。這裏有什麼問題?
這不是'bash',它看起來像一個'Expect'腳本。 – Barmar
其中一個變量可能有一些額外的空格。試試'echo「| $ filelocal |」'和'echo「| $ fileremote |」',這樣你就可以看到值的結尾。 – Barmar
@Barmar第一個文件是一個Expect腳本,但問題出在bash文件中。 | $ ... |給出這個輸出'不等於 | blatt3A2.m | | blatt3A2.m'我真的不知道,它是什麼意思,不知道如何谷歌這個命令。我如何繼續?對不起,我是新手bash –