我正在尝试进行for循环,以便可以从我的期望脚本内的 ls 输出中读取每个文件。
/usr/bin/expect << 'EOF'
set timeout -1
spawn ssh root@server
expect {
"*assword: "
}
send "_t00rhs!\r"
expect {
"*]# "
}
send 'for item in "\$(ls)" do sort -k1 -n ${item}; done \r'
expect {
"*]# "
}
输出显示它没有item的值。
]0;root@atddpvm13:~[?1034h[root@atddpvm13 ~]# can't read "item": no such
variable
while executing
"send 'for item in "\$(ls)" do sort -k1 -n ${item}"
答案 0 :(得分:0)
从期望的角度来看:
\r
序列不会用大括号解释所以你得到
send {for item in $(ls); do sort -k1 -n "$item"; done}
send "\r"
从壳体侧面
你想要
send "printf '%s\n' * | sort -k1 -n\r"
# or
send "ls -1v\r"