我使用EditPlus编写linux bash程序.写入文件后我将文件移动到服务器时出现以下错误:
sleep: invalid time interval `2\r'
Try `sleep --help' for more information.
/usr/bin/program: line 9: $'\r': command not found
/usr/bin/program: line 10: $'}\r': command not found
/usr/bin/program: line 11: $'\r': command not found
/usr/bin/program: line 12: syntax error near unexpected token `$'{\r''
'usr/bin/program: line 12: `stop() {
Run Code Online (Sandbox Code Playgroud)
我也使用dos2unix来解决这个问题,但没有成功.我想知道有什么方法可以避免这种问题.它浪费了很多时间.是否有更好的编辑或某种方法来解决这个问题?
编辑:
我要解决的问题是我在linux中查看文件,然后逐行从windows文件复制到linux文件,然后就可以了.这些是我的代码行:
line7:udevadm control --reload-rules sleep 2 echo echo $(date +"%b%e%T")hostnameProgram [$$]:Program Started | tee -a/var/log/messages echo} stop(){
我有一个运行Apache并使用MySQL数据库的HTML网站.我想加快Apache服务器的响应时间.我想得到关于我应该走哪条路的建议?我在Google上看到Varnish与Apache一起使用.所以我有两个问题:
我在linux中有一个文本文件(基本上是一个日志文件),我有2个单词(alpha,beta).
现在我试图在一行中搜索这两个单词,然后在临时文件中打印该行和接下来的15行.有很多行有alpha和beta但是我只需要最后一次出现"alpha"和"beta"以及接下来的15行.
如果你还告诉我命令,如果你的话数增加,比如3或4个字在同一行上搜索,alpha,beta,gamma,我会感激不尽的
我在linux bash中编写了一个程序,以下是启动/停止该程序的方法:
start_program
stop_program
restart_program.
Run Code Online (Sandbox Code Playgroud)
我在/ usr/bin中复制了上面的脚本,因此这些脚本作为命令工作.但我想要而不是上面的命令我只需键入程序名称然后将操作作为参数传递.例如,如果我想启动程序,那么我应该在命令提示符下写:
ProgramName start
Run Code Online (Sandbox Code Playgroud)
如果我想卸载那么
ProgramName uninstall
Run Code Online (Sandbox Code Playgroud)
如果重启
ProgramName restart
Run Code Online (Sandbox Code Playgroud)
所以我怎么能做到这一点,我只是编写程序名称然后传递动作作为参数,然后按回车来做那件事.
我正在尝试读取不断变化的日志文件(即文本文件),并对该文件中的某些文本生成警报.我想通过bash脚本来做到这一点,但我很困惑,一旦一些文本进入该日志文件,我将如何调用我的程序.
换句话说,我如何在该文件上一直检查,以便每当某个特定文本进入该文件时,我都会收到有关该文本的警报.任何函数调用?或者是其他东西?请指教.
我在 linux 中编写了以下脚本来获取 USB 详细信息:当连接 USB 时,该脚本从 udev 执行。
fgrep -A 15 'New USB device found' /var/log/messages | tail -n 16 > usb_detail
SERIAL=$(sed -n '5s/A.*: //p' usb_detail)
SIZE=$(sed -n '10s/A.*: //p' usb_detail)
MOUNT=$(sed -n '14s/A.*: //p' usb_detail)
blkid > Label
LABEL=$(grep $MOUNT Label | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)
现在的问题是我正在获取所有值(序列号、大小、安装),但是当它从 BLKID 检查 USB 标签时,我什么也没得到。这个命令没有给我任何输出:
blkid > Label
Run Code Online (Sandbox Code Playgroud)
此命令在命令提示符下正常工作。但是当我在这个脚本中运行它时(当连接 USB 时从 UDEV 调用它)然后它不会给出任何输出。
那么我怎样才能弄清楚什么是主要问题以及为什么我在 LABEL 文件中没有得到任何东西?
这是我的/var/log/messages:
Apr 28 08:25:58 box2 kernel: usb 1-3: New USB device found, idVendor=0411, idProduct=0105
Apr 28 …Run Code Online (Sandbox Code Playgroud)