带有sftp的基本bash脚本

带有sftp的基本bash脚本,bash,shell,sftp,Bash,Shell,Sftp,我正在尝试创建一个调用sftp的简单bash脚本 在交互模式下,每当用户在文件上使用“put”时,我都希望回显该文件上的一些元数据信息 我正在阅读tldp.org上的Bash初学者指南,但我很清楚如何编写if语句,在用户点击“put”命令时进行检查 谢谢 编辑:添加了一些基本代码和详细说明 #!/bin/bash sftp 133.43.453.132 # I made up this IP for demonstration purposes while True do if [user u

我正在尝试创建一个调用sftp的简单bash脚本

在交互模式下,每当用户在文件上使用“put”时,我都希望回显该文件上的一些元数据信息

我正在阅读tldp.org上的Bash初学者指南,但我很清楚如何编写if语句,在用户点击“put”命令时进行检查

谢谢

编辑:添加了一些基本代码和详细说明

#!/bin/bash

sftp 133.43.453.132 # I made up this IP for demonstration purposes
while True
do
if [user uses 'put' to a transfer a file to remote server] # New to bash so I don't know how to express this.
    then
        echo "Random stuff"
fi
done

那么基本上,我怎么写这个if条件呢

一个天真的方法可能是

#!/bin/bash
sftp 133.43.453.132 | tee /dev/tty |
while read prompt command argument1 rest
do
    case $command in put) echo "Random stuff";;
    esac
done
  • 要考虑命令行编辑或输出排序等问题,至少需要一个比
    tee/dev/tty
    更复杂的过滤器

请展示迄今为止您所拥有的一般情况,您没有。也就是说,很难使用bash脚本控制另一个命令,同时允许用户与之交互。有一个叫做的工具可以做这类事情,但是用它做任何复杂的事情都不是小事。谢谢你的评论。我想这样做是因为每当用户使用put将文件放到服务器上时,我希望put为该文件回显一些元数据。那我该怎么做呢?我不熟悉bash,所以我不知道用什么最佳方式来表达这一点。