跳至主要内容

博文

目前显示的是标签为“Shell”的博文

WSL invalid option when executing shell script

有一个 bash script,在MacOS里执行的顺利无比,但是一到 WSL 里头就总是出问题。 : invalid option 一开始怀疑是 shebang 哪里写错了,后来发现不对,貌似和 '^M' 有关。最后在[这里](https://newbedev.com/bad-interpreter-bin-bash-m-code-example)看到了类似的提示,果然是linefeed要替换! sed -i -e 's/\r$//' $FILE.sh

改写一段自启动服务的脚本

用了一年多的Ubuntu,平时写脚本读脚本渐渐的已经习惯了Debian风格的函数调用,最近因为工作需要,在Fedora服务器上要加入一个自启动服务,花了两天时间重写一段脚本。po上来以备有相同需要的筒子参考。 无论是在Ubuntu还是Fedora下面,我用的shell都是bash,所以基本的命令都是想通的。只是在/etc/init.d里面有几个函数族不太一样。以下先将最终写好的Fedora脚本贴出来,然后再罗嗦几句…… # !/bin/bash # # chkcofig: 35 -80 50 # Description: Company Application Server Implementation # # Check the privilege if [ `id -u` -ne 0 ]; then echo "You need root privileges to run this script" exit 1 fi # Source function library. . /etc/init.d/functions . /lib/lsb/init-functions # Configurations (could be defined in /etc/sysconfig/mvas) APP_NAME=mvas PID_FILE=/var/run/${APP_NAME}.pid LOCK_FILE=/var/lock/subsys/${APP_NAME} CATALINA_HOME=/usr/share/tomcat5 APPSERVER_HOME=${MVAS_HOME-/etc/comp/privaty} pidof_mvas() { local pids=`pidof /usr/bin/java` echo "pid = $pids" for ii in $pids; do echo "testing $ii " if [ -d /proc/$ii ]; then hit=`ps ax | grep $ii | grep appsrv\/conf` [ -n "$hi...