Bash 编写命令脚本时出错,但手动使用时出错

Bash 编写命令脚本时出错,但手动使用时出错,bash,shell,sed,Bash,Shell,Sed,正在尝试应用此命令: echo $1 | sed -re 's/.example.com//' | tr '[:lower:]' '[:upper:]' 手动运行(通过输入sprod.example.com,我将得到“sprod”。但当我试图在脚本中使用它时,我会得到以下结果: <script_path>: line 34: echo sprod.example.com | sed -re 's/.example.com//' | tr '[:lower:]' '[:upper:

正在尝试应用此命令:

 echo $1 | sed -re 's/.example.com//' | tr '[:lower:]' '[:upper:]'
手动运行(通过输入sprod.example.com,我将得到“sprod”。但当我试图在脚本中使用它时,我会得到以下结果:

<script_path>: line 34: echo sprod.example.com | sed -re 's/.example.com//' | tr '[:lower:]' '[:upper:]': No such file or directory

引用错误。你必须这样写:

hostname=$(echo "$1" | sed -re 's/.vdb.local//' | tr '[:lower:]' '[:upper:]')

您确定这是您在脚本中的确切行吗?没有周围的
"
或任何东西?这是整行,还是您在以某种方式使用结果?是的,就是这样,我将结果放入一个变量中,并使用此变量创建一个命令variable@NicolasFrbezar那么你能给我们看整条线路吗?关键是我们看不到你对线路输出做了什么-你希望它在终端o上回响吗r是否有什么东西试图将其读入变量或其他什么东西,这就是错误所在?
hostname=$(echo "$1" | sed -re 's/.vdb.local//' | tr '[:lower:]' '[:upper:]')