![为什么我的命令会出现“(standard_in) 2: 语法错误”?](https://linux22.com/image/225527/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E5%91%BD%E4%BB%A4%E4%BC%9A%E5%87%BA%E7%8E%B0%E2%80%9C(standard_in)%202%3A%20%E8%AF%AD%E6%B3%95%E9%94%99%E8%AF%AF%E2%80%9D%EF%BC%9F.png)
我有一堆自定义命令。一个叫Shut
.我在关闭电脑之前用它来自动执行一些任务。
#!/bin/bash
. Load
Stop
Update
Install
SpecialCommands
sudo shutdown -h now
当我运行它时,我得到(standard_in) 2: syntax error
了命令Stop
。这是我的Stop
命令:
#!/bin/bash
sudo echo
. Load
clear
Divide
Info "Stopping all ..."
Divide
for i in $(docker ps -a -q --filter name=$1);
do
export Name=$(docker container inspect $i | grep "Name.*/" | cut -d'/' -f2 | cut -d'"' -f1)
docker rm $i --force 1>/dev/null
Check $Name
done
docker system prune --force 1>/dev/null
Divide
Success "Stopped all"
Divide
基本上Stop
命令会停止所有 docker 容器并清理系统。
如果我将其更改为bash Stop
那么我就不会收到该错误。
bc
我搜索了一下,几乎所有的帖子都与命令有关。我没有使用bc
.可能是什么原因?
如果您需要更多数据,请告诉我。谢谢。
更新:我的Load
命令基本上加载了一堆 shell 脚本,其中包含命令可访问的函数:
for ScriptFile in /HolismHolding/Scripts/**;
do
if [[ $ScriptFile == *Python* ]]; then
continue;
fi
. "$ScriptFile"
done
例如,它加载Message
包含以下函数的我的脚本:
#!/bin/bash
red=""
green=""
cyan=""
magenta=""
yellow=""
reset=""
if [[ -t 1 ]]; then
red=`tput setaf 1`
green=`tput setaf 2`
cyan=`tput setaf 6`
magenta=`tput setaf 5`
yellow=`tput setaf 3`
reset=`tput sgr0`
fi
Check="\xE2\x9C\x94"
function Check()
{
echo -e "${green}$*;$Check${reset}" | column -t -s ';'
}
function Success()
{
echo "${green}$*${reset}"
}
function Info()
{
echo "${cyan}$*${reset}"
}
function Warning()
{
echo "${yellow}$*${reset}"
}
function Error()
{
echo "${red}$*${reset}"
}
function Divide()
{
echo
echo "${magenta}----------${reset}"
echo
}