gpt4 book ai didi

linux - 从脚本执行命令时没有此类文件或目录错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:04 25 4
gpt4 key购买 nike

我正在编写一个脚本,该脚本从 MySQL 获取命令并一条一条地执行它们。我的问题是我无法从脚本执行命令:

./bash.sh: line 26: /myscript.sh -c "": no such file or directory

第 26 行是我希望执行的命令(“$com”)。如果我尝试手动运行命令,通过回显“$com”的内容,而不是从终端运行它,它正在工作。

我做错了什么?

if [ ! "${#array[*]}" -eq "0" ]; then
for (( i=0 ; i<cnt ; i++ )); do
id=$(echo "${array[$i]}" | sed 's@\t@^@g' | cut -f'1' -d'^')
com=$(echo "${array[$i]}" | sed 's@\t@^@g' | cut -f'2' -d'^')
imp=$(echo "${array[$i]}" | sed 's@\t@^@g' | cut -f'3' -d'^')

if [[ "$id" = [0-9]* ]]; then
"$com"
echo "DELETE FROM list WHERE id='$id'" | mysql "$DB_USER" -u "$DB_USER" -p"$DB_PASS"
fi
done
else
echo "The list is empty"
fi

最佳答案

添加为社区 Wiki

这个问题在 Vaughn Cato 的评论中得到了解决,并且自 3 月以来就没有看到过 OP。

那里的接受答案是使用 eval 所以脚本中的 if 语句将是:

if [[ "$id" = [0-9]* ]]; then
eval "$com"
echo "DELETE FROM list WHERE id='$id'" | mysql "$DB_USER" -u "$DB_USER" -p"$DB_PASS"
fi

关于linux - 从脚本执行命令时没有此类文件或目录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com