考虑以下测试片段(这些是文件“declare_test”的内容):
function do_foobar ()
{
unset FOOBAR
declare -- FOOBAR="default"
FOOBAR="override"
echo "At end of do_foobar: FOOBAR = \"$FOOBAR\""
}
Run Code Online (Sandbox Code Playgroud)
从命令提示符运行 do_foobar 会产生:
$ source declare_test
$ do_foobar
At end of do_foobar: FOOBAR = "override"
$ echo "FOOBAR=\"$FOOBAR\""
FOOBAR=""
Run Code Online (Sandbox Code Playgroud)
换句话说,函数 FOOBAR 内部具有预期值,即“覆盖”,但在函数 FOOBAR 立即被取消设置之后。
如果我们更改 do_foobar 并删除“declare”行,则结果是:
$ do_foobar
At end of do_foobar: FOOBAR = "override"
$ echo "FOOBAR=\"$FOOBAR\""
FOOBAR="override"
Run Code Online (Sandbox Code Playgroud)
所以,现在 FOOBAR 没有被重置。请注意,删除的声明的功能是设置FOOBAR。如果我们不删除声明而是删除“FOOBAR=”override”行,则结果将变为:
$ do_foobar
At end of do_foobar: FOOBAR = "default"
$ echo "FOOBAR=\"$FOOBAR\""
FOOBAR="" …Run Code Online (Sandbox Code Playgroud) 在bash中,有一个命令行可以根据时间戳列出目录中的所有文件。例如,
\ls -ltr dir/file*
-rw-r--r-- 1 anon root 338 Aug 28 12:30 g1.log
-rw-r--r-- 1 anon root 2.9K Aug 28 12:32 g2.log
-rw-r--r-- 1 anon root 2.9K Aug 28 12:41 g3.log
-rw-r--r-- 1 anon root 2.9K Aug 28 13:03 g4.log
-rw-r--r-- 1 anon root 2.9K Aug 28 13:05 g5.log
Run Code Online (Sandbox Code Playgroud)
我想列出之前所有带有时间戳的文件Aug 28 13:00。
更新:
]$ find -version
GNU find version 4.2.27
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION SELINUX
Run Code Online (Sandbox Code Playgroud) 内容a.rb是:
if system("mount | grep /boot") != ""
print "true" # or do something
else
print "false" # or do something else
end
Run Code Online (Sandbox Code Playgroud)
运行此代码不会打印"true"或"false",但会打印系统调用的输出.
]$ ruby a.rb
/dev/sda1 on /boot type ext4 (rw)
Run Code Online (Sandbox Code Playgroud)
检查if条件的正确语法是什么?
知道如何在上graphicsmagick使用yum进行安装rhel 6吗?我知道另一种安装方法,即下载tar文件并运行make install等。但是我想知道我们是否可以通过像yum这样的包管理器来安装它,以便将来需要时更容易卸载。
谢谢
export无法找到bash命令$PATH,但可以执行它.与此类似source.为什么会这样?感谢任何高尚的回答......