bash - 在 FOR 和 SSH 中执行 CAT
问题描述
我在 shell 脚本方面没有太多经验,因此我需要你的帮助。我有以下查询,我需要对我列出的文件进行 CAT,但我不知道在哪里放置命令。谢谢:
read date
echo -e "RECORDINGS"
for e in $Rec
do
sshpass -p password ssh user@server find $e "-type f -mtime -10 -exec ls -gGh --full-time {} \;" | cut -d ' ' -f 4,7 | grep $date | awk -F " " '{print $2}'
done
解决方案
忽略这里的大部分代码是非常危险的——
find_on_server() {
local e_q
printf -v e_q '%q ' "$1"
sshpass -p password ssh user@server "bash -s $e_q" <<'EOF'
e=$1
find "$e" -type f -mtime -10 -exec ls -gGh --full-time {} \;
EOF
# ^^^ the above line MUST NOT BE INDENTED
}
find_on_server "$e" | cut -d ' ' -f 4,7 | grep $date | awk -F " " '{print $2}'
推荐阅读
- java - 如何通过google api库(例如people api)或带有服务帐户凭据的REST通过google电子邮件获取用户的信息(account_id)?
- javascript - HTML:如何从 HTML 网页执行 setup.exe 进程
- windows - 监视注册表值永远不会被更改或删除
- apache-spark - 结构化流是如何执行 pandas_udf 的?
- javascript - 带有 Pagy 的 Rails 6
- java - 毕业:编译Java?找到模块。编译TestJava?找不到模块 foo?
- c# - Asp.net core Identity 无需密码即可从任何设备登录用户
- mysql - 创建用户和在mysql中授予授权之间的“%”是什么意思
- git - 如何阻止 Git 子树自动合并冲突?
- oracle - 在 Oracle APEX 中添加新类型的项目