只有在使用SFTP将文件从远程服务器复制到我的服务器时,我才需要使用if函数过滤出所需的文件。下面是我在/filesnew
中获取所有数据的尝试。
#!/bin/bash
files=`sshpass -p 'XXX' sftp -P 2222 User1@10.18.90.12<<EOF
cd /filesnew
ls
EOF`
files=`echo $files|sed "s/.*sftp> ls//"`
(
echo cd /filesnew
for file in $files; do
echo get $file /data/processedfiles/$file
done
) |sshpass -p 'XXX' sftp -P 2222 User1@10.18.90.12
我需要过滤掉以"USER"
开头的文件。
ex:
If($files==*USER*) then
echo get $file /data/processedfiles/$file
有人能教我怎么做吗?
发布于 2022-04-17 13:50:50
使用操作符周围的空格。这些都是参数,用于命令和空格,将它们分开。
"If“拼写为if
(小写)。
测试条件是用[
.]
进行的,而不是用(
.)
进行的。
过滤不是比较。这是完全不同的行动。使用grep
... | grep -E -v '^USER'
请参阅:man grep
https://stackoverflow.com/questions/71900058
复制