小编iam*_*ser的帖子

shell函数中的“声明”和环境变量的范围

考虑以下测试片段(这些是文件“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

1
推荐指数
1
解决办法
405
查看次数

根据时间戳列出目录中的文件

在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)

bash shell

0
推荐指数
1
解决办法
1万
查看次数

Ruby检查是否安装在if条件中

内容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条件的正确语法是什么?

ruby

0
推荐指数
1
解决办法
810
查看次数

百胜在Rhel服务器上安装graphicsmagick

知道如何在上graphicsmagick使用yum进行安装rhel 6吗?我知道另一种安装方法,即下载tar文件并运行make install等。但是我想知道我们是否可以通过像yum这样的包管理器来安装它,以便将来需要时更容易卸载。

谢谢

yum

0
推荐指数
1
解决办法
3121
查看次数

命令export不在$ PATH中,但可以执行

export无法找到bash命令$PATH,但可以执行它.与此类似source.为什么会这样?感谢任何高尚的回答......

bash shell

-2
推荐指数
1
解决办法
37
查看次数

标签 统计

bash ×3

shell ×2

ruby ×1

yum ×1