我有2个期望的命令,但是,我不明白正在进行的扩展。 (在上下文中,我有一个连接到服务器,下载和空白的所有日志文件在指定的目录中的脚本。)Bash不一致转义星号*在期望?
expect -c "
set timeout 1
spawn scp [email protected]:/logdir/\*.log .
expect yes/no { send yes\n ; exp_continue }
expect password: { send $pass\n }
expect 100%
sleep 1
exit
";
在此命令,预计将显示催生命令spawn scp [email protected]:/logdir/*.log .
这意味着,在\去掉了。
expect -c "
set timeout 1
spawn ssh [email protected] {echo '' | tee /logdir/\*.log > /dev/null}
expect yes/no { send yes\n ; exp_continue }
expect password: { send $pass\n }
expect eof
";
在此命令中,期望显示为spawn ssh [email protected] echo '' | tee /logdir/\*.log > /dev/null
衍生的命令即开即\是不除去。为什么不同? (如果我没有逃过星号,就像tee /logdir/*.log
一样,它确实有效,但我不明白与上述情况有什么不同)
答案有帮助解决你的问题吗? – pynexj
哎呀,我忘了这个问题,直到现在。是的,它帮助我解决了我的问题,谢谢! – Eric