重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、service命令
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站制作、做网站、网站策划、网页设计、域名注册、虚拟主机、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。
service命令其实是去/etc/init.d目录下,去执行相关程序
查看/etc/init.d目录下有哪些文件
[root@VM_0_11_centos init.d]# ll /etc/init.d/
total 40
-rw-r--r-- 1 root root 18281 Mar 29 2019 functions
-rwxr-xr-x 1 root root 4569 Mar 29 2019 netconsole
-rwxr-xr-x 1 root root 7923 Mar 29 2019 network
-rw-r--r-- 1 root root 1160 Oct 19 00:48 README
[root@VM_0_11_centos init.d]#
查看脚本文件都有哪些命令
# See how we were called.
case "$1" in
start)
[ "$EUID" != "0" ] exit 4
rc=0
# IPv6 hook (pre IPv4 start)
if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
/etc/sysconfig/network-scripts/init.ipv6-global start pre
fi
apply_sysctl
#tell NM to reload its configuration
[root@VM_0_11_centos ~]# /etc/init.d/network start
Starting network (via systemctl): [ OK ]
[root@VM_0_11_centos ~]# service restart network
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
[root@VM_0_11_centos ~]#
2、systemctl命令
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
systemd对应的进程管理命令是systemctl
按照你到思路,你的shell程序主要有两个错误:
1,变量ft赋值错误;按照你的写法,ft的结果是:file /etc,因为等式右边加的是单引号,是字符串原样赋值,而并没有取到file这个命令到结果,正确写法是:ft=$(file "$NAME")
2,第二个问题是格式问题,小问题。case语句中的备选项,如“$NAME:directory”,冒号后要加一个空格,因为file /etc这条命令的结果是/etc: directory,注意冒号后面是有一个空格的,所以case语句中到备选项格式要与之匹配。
由于你写的程序有这两个错误,解释执行时,会转到case语句中到最后一项输出,即输出:/etc is Other file type
我所说到已经经过本人亲自测试,所用系统为Fedora 12.
希望能帮到你。
在本例中的case中,变量$inp会逐个匹配1)、2)、3)等后面的选项,如果匹配成功就执行后面对应的语句。
对于这一句:
1)$HOME\...\a1 $$HOME\...\a2;;
你应该没有给完整,“...”这个省略号在实际情况中是不可能出现的,应该对应实际的路径名字。
这句活的意思是如果$inp的值是“$HOME\...\a1”,那么就执行“$$HOME\...\a2”(我觉得你这个命令也给错了,$$本省是一个变量,代表当前进行ID,估计原本该句是“$HOME\...\a2”,这里多了一个$。),