From 62cccfbcc61081cdaca0aa88890ba0cf855b37db Mon Sep 17 00:00:00 2001 From: FaulknerWu Date: Mon, 22 Jun 2026 12:35:12 +0800 Subject: [PATCH] Fix shell compatibility issues in prod-backend.sh - Use bash -c explicitly for command substitution with source - Fixes 'source: not found' errors when running subshells Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/prod-backend.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/prod-backend.sh b/scripts/prod-backend.sh index 4fcfbf1..d98196c 100755 --- a/scripts/prod-backend.sh +++ b/scripts/prod-backend.sh @@ -115,7 +115,7 @@ sleep 4 # 验证 daemon 是否就绪(用简单的 topic list 测试) DAEMON_OK=0 for i in $(seq 1 5); do - DAEMON_TOPICS=$(source "$ROS_SETUP" && ROS_DOMAIN_ID=$ROS_DOMAIN_ID_VAL timeout 3 ros2 topic list 2>&1 | wc -l || echo 0) + DAEMON_TOPICS=$(bash -c "source \"$ROS_SETUP\" && ROS_DOMAIN_ID=$ROS_DOMAIN_ID_VAL timeout 3 ros2 topic list 2>&1" | wc -l || echo 0) if [ "$DAEMON_TOPICS" -gt 0 ]; then DAEMON_OK=1 echo " ✅ ros2 daemon 就绪" @@ -285,7 +285,7 @@ echo "==========================================" # 8a. 验证 ros2 topic list(核心指标) echo "" echo "验证 ros2 topic list..." -TOPIC_COUNT=$(source "$ROS_SETUP" && ROS_DOMAIN_ID=$ROS_DOMAIN_ID_VAL timeout 5 ros2 topic list 2>/dev/null | wc -l || echo 0) +TOPIC_COUNT=$(bash -c "source \"$ROS_SETUP\" && ROS_DOMAIN_ID=$ROS_DOMAIN_ID_VAL timeout 5 ros2 topic list 2>/dev/null" | wc -l || echo 0) echo " 话题数量: $TOPIC_COUNT" if [ "$TOPIC_COUNT" -gt 10 ]; then echo " ✅ ros2 daemon 正常 (${TOPIC_COUNT} 个话题)"