我编写了一个脚本来简化 Android 源代码的同步和构建。我尝试向cherrypick补丁添加一个功能,但我无法让它正常工作。我知道这是因为正斜杠,但我不知道如何保护/逃避它们。
部分代码是:
echo "Copy/paste the project folder, i.e. 'frameworks/base'"
read folder
echo ""
echo "Now paste the cherry-pick git link, i.e. 'git fetch <someproject> refs/changes/... && git cherry-pick FETCH_HEAD'"
read cherry
echo ""
Begin
clear
echo ""
export IFS="&&"
for x in $cherry
do
cd ${CM}/${folder}
CHERRY=$(trim "$x")
$CHERRY
done
假设“樱桃”变量是:
git fetch http://r.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/68/22968/2 && git cherry-pick FETCH_HEAD
我会收到这个错误:
/home/tristan202/bin/build_cm.sh: line 159: git fetch http://r.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/91/23491/2: No such file or directory
/home/tristan202/bin/build_cm.sh: line 159: git cherry-pick FETCH_HEAD: command not found
我无法弄清楚它为什么会失败。
它调用的“修剪”函数是修剪前导和尾随空格的函数。如果我在 for 循环中回显“$CHERRY”,命令会正确打印,但仍然失败。