내 명령에 "(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이 명령은 모든 도커 컨테이너를 중지하고 시스템을 정리합니다.

다음 으로 변경하면 bash Stop해당 오류가 발생하지 않습니다.

bc검색해 보니 거의 모든 게시물이 명령어와 관련되어 있습니다. 나는 그것을 사용하지 않습니다 bc. 이유가 무엇일까요?

더 많은 데이터가 필요하면 알려주시기 바랍니다. 감사해요.

고쳐 쓰다:내 Load명령은 기본적으로 명령에 액세스할 수 있는 함수가 포함된 여러 셸 스크립트를 로드합니다.

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
}

관련 정보