bash - 如何在 xargs 中将函数作为参数传递?
问题描述
我有这个例子:
migrate(){
case $1 in
"team_container")
echo "Rodando Migrate de ${1}",
;;
"evaluation_container")
echo "Rodando Migrate de ${1}",
;;
"school_container")
echo "Rodando Migrate de ${1}",
;;
"class_container")
echo "Rodando Migrate de ${1}",
;;
"student_container")
echo "Rodando Migrate de ${1}",
;;
"messages_container")
echo "Rodando Migrate de ${1}",
;;
"logs_container")
echo "Rodando Migrate de ${1}",
;;
esac
}
export MIGRATE=migrate;
docker ps --format {{.Names}} | xargs bash -c "MIGRATE {}"
输出:
迁移:找不到命令
xargs 找不到该函数,即使导出它并调用子shell。
如何将我的函数迁移作为参数传递给 xargs?
解决方案
将其作为参数传递:
xargs -n1 bash -c 'migrate "$1"' _
记得导出你的函数:
export -f migrate
推荐阅读
- swift - 如何在嵌套的 tableview 中使用 navigationController.pushViewController?
- dynamics-crm - MS Dynamics CRM:有没有办法根据现有属性检查个人观点?
- mysql - 远程连接到被 IPTABLES 阻止的 MySql
- angular - Angular 和 Capacitor 中的后退按钮问题
- reactjs - useEffect 理解问题。在不传递任何依赖数组时运行无限循环
- scala - 如何在解析时验证 JSON 字符串?
- angular - 带有模板驱动表单的 ngx-bootstrap 模板模式,提交问题
- mysql - mysql任意索引查询性能
- azure - 函数应用主机运行时版本 ~3 无法识别 hosts.json 中的 functionTimeout
- c# - C# React Web 应用程序基础通用 CRUD 控制器不起作用