正在尝试应用此命令:
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
怎么了?
编辑
这是我对变量的用法:
# uppercase the hostname and cleaning
hostname=$("echo "$1" | sed -re 's/.vdb.local//' | tr '[:lower:]' '[:upper:]'")
# create the command line to add to the command file
cmdline="[$datetime] PROCESS_SERVICE_CHECK_RESULT;$hostname;$2;$3;$4"
引用错误。你必须这样写:
hostname=$(echo "$1" | sed -re 's/.vdb.local//' | tr '[:lower:]' '[:upper:]')