我想知道下面脚本中的错误是什么
我得到错误: command not foundh: line 1:
,: command not foundh: line 2:
它是连续的
我试过添加,;
但现在工作,请告诉我该怎么办?
#!/bin/bash;
clear;
FILEREPO=http://192.168.1.2/cpplugin;
echo "-----------------------------------------------";
echo " Welcome to C-Panel Login Alert Installer";
echo "-----------------------------------------------";
cd /var/cpanel/;
mkdir perl5
cd perl5/
mkdir lib
cd lib/
wget $FILEREPO/LoginAlerthook.zip
unzip LoginAlerthook.zip
rm -r LoginAlerthook.zip
cd /
/usr/local/cpanel/bin/manage_hooks add module LoginAlert
chmod 777 LoginAlert.pm
echo " "
echo " Login Alert Script Hooked With C Panel Finished"
echo " "
Run Code Online (Sandbox Code Playgroud)
pax*_*blo 10
您获得有趣输出的事实肯定是您的脚本在行尾有回车(CR)字符,通常是使用Windows编辑器的症状,假设行结尾应该是CR/LF而不是仅仅标准的UNIX LF(换行).这导致错误输出,如:
this_command_ends_hh<CR>: command not found
Run Code Online (Sandbox Code Playgroud)
并且因为CR将光标放回到行开始,它会覆盖其中一些:
this_command_ends_hh<CR>
: command not found
Run Code Online (Sandbox Code Playgroud)
制造:
: command not foundh
Run Code Online (Sandbox Code Playgroud)
检查脚本od -xcb scriptname
以检查CR(显示为\r
)字符,还可以通过管道输出脚本od -xcb
来查看实际输出.例如,我创建的文件hello
后跟一行唯一的回车:
0000000 6568 6c6c 0d6f 000a
h e l l o \r \n
150 145 154 154 157 015 012
0000007
Run Code Online (Sandbox Code Playgroud)
你可以\r
在那里看到CR().
如果这是问题,只需删除CR字符,例如管道tr -d '\r'
.
执行cat hello.txt | tr -d '\r' | od -xcb
可以摆脱它的节目:
0000000 6568 6c6c 0a6f
h e l l o \n
150 145 154 154 157 012
0000006
Run Code Online (Sandbox Code Playgroud)
在您的情况下,假设您的脚本被调用freak.bash
,您将使用:
tr -d '\r' <freak.bash >newfreak.bash
Run Code Online (Sandbox Code Playgroud)
并且newfreak.bash
将是没有违规人物的人.
归档时间: |
|
查看次数: |
2346 次 |
最近记录: |