为什么我的命令会出现“(standard_in) 2: 语法错误”?

为什么我的命令会出现“(standard_in) 2: 语法错误”?

我有一堆自定义命令。一个叫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
}

相关内容