我理解> /dev/null
将事物重定向到/dev/null
像黑洞一样的东西。但是,我不明白是什么< /dev/null
意思。我看到一些脚本是这样写的:
nohup myprogram > foo.out 2> foo.err < /dev/null &
Run Code Online (Sandbox Code Playgroud)
那么,< /dev/null
上面的代码是什么意思呢?
这是一个建议的示例
我/root/test.sh
在远程服务器上有以下内容:
#!/bin/bash
date
Run Code Online (Sandbox Code Playgroud)
在远程服务器上,我得到以下输出:
# ./test.sh
Fri Dec 18 07:41:10 EST 2015
# bash <(cat /root/test.sh)
Fri Dec 18 07:41:23 EST 2015
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试从本地计算机运行相同的命令,则会得到以下结果:
$ ssh root@remote_server /root/test.sh
Fri Dec 18 07:44:32 EST 2015
$ ssh root@remote_server bash <(cat /root/test.sh)
cat: /root/test.sh: No such file or directory
bash: /dev/fd/63: No such file or directory
Run Code Online (Sandbox Code Playgroud)
那么最后运行的问题是什么?您可能会发现运行这样的脚本很奇怪bash <(cat /root/test.sh)
。我这样做的原因是因为它是我真实情况的简化版本。我的真实代码是从网上下载一个Bash脚本在本地运行。我有很多机器要运行,具有不同的参数,所以我试图从我的本地计算机上运行它们。
我通常my_files
使用命令创建一个 tgz 文件tar -czvf my_files.tgz my_files
,并使用tar -zxvf my_files.tgz
. 现在我有一个使用命令创建的 tar 文件tar -cvf my_files.tar my_files
。我想知道如何将其my_files.tar
转换为my_files.tgz
稍后我可以使用命令提取它tar -zxvf my_files.tgz
?谢谢。
我明白通过安装dstat
,iostat
我可以获得磁盘活动统计信息。
但是,现在我希望尽量减少依赖项,因为我不想强迫我的脚本用户安装其他东西。
所以我想知道是否有任何方法可以从某个地方读取磁盘统计信息/proc/
?
我的脚本是这样的:
#!/bin/bash
mysql dbname -N -uroot -p -hhost -se "SELECT COUNTRY, COUNTRY_NAME FROM server ORDER BY COUNTRY"
output=$(mysql dbname -N -uroot -p -hhost -se "SELECT COUNTRY, COUNTRY_NAME FROM server ORDER BY COUNTRY")
echo $output
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
Enter password:
CN China
CZ Czech Republic
FI Finland
JP Japan
NL Netherlands
RO Romania
SG Singapore
UA Ukraine
US United States
US United States
US United States
US United States
Enter password:
CN China CZ Czech Republic FI Finland JP Japan NL Netherlands RO …
Run Code Online (Sandbox Code Playgroud)