通过 echo 时上述命令的输出是:
# echo systemctl\ {restart,status}\ sshd\;
systemctl restart sshd; systemctl status sshd;
Run Code Online (Sandbox Code Playgroud)
即使我将输出粘贴到终端,该命令也能工作。但是当我尝试直接运行命令时,我得到:
# systemctl\ {restart,status}\ sshd\;
bash: systemctl restart sshd;: command not found...
Run Code Online (Sandbox Code Playgroud)
我有两个问题..
我们知道 sysctl 命令可以通过以下方式更改内核参数:
# sysctl -w kernel.domainname="example.com"
Run Code Online (Sandbox Code Playgroud)
或直接编辑/proc/sys目录中的文件。对于持久更改,必须将参数写入/etc/sysctl.d/<moduleName>.conf文件,如下所示:
# echo kernel.domainname="example.com" > /etc/sysctl.d/domainname.conf
Run Code Online (Sandbox Code Playgroud)
但是,我们也可以使用 modprobe 命令更改内核参数:
# modprobe kernel domainname="example.com"
Run Code Online (Sandbox Code Playgroud)
然后是/etc/modprobe.d目录中的 modprobe.conf 文件,它存在于多个位置:/etc/modprobe.d和/usr/lib/modprobe.d. 它包含多个.conf文件,可以在模块的相应 conf 文件中提供选项,如下所示:
options kernel domainname="example.com"
Run Code Online (Sandbox Code Playgroud)
那么,每种方法之间有什么区别呢?在什么具体情况下应该使用哪种方法?
我的脚本是:
#!/bin/bash
num1=32.55
num2=145.958
printf "%5.2f\n" $num1
printf "%5.2f\n" $num2
Run Code Online (Sandbox Code Playgroud)
输出是:
32.55
145.96
Run Code Online (Sandbox Code Playgroud)
代替:
32.55
145.96
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?如果有帮助,我正在使用 Fedora 27 BetaLinux Kernel 4.13.8-300.fc27.x86_64