标签: command-substitution

使用 grep 获取日期格式

我看过类似的问题并尝试了大多数建议,但它们都没有让我有任何进展,即使我认为我有一个相当简单的任务:S。我对这整件事相当陌生,所以我已经不知道该尝试什么或我做错了什么......

因此,任务是获取列出的文件行(使用 grep),其中包含短月份名称和日期(例如 Oct 22)。该文件中有一个长格式列表(包含在当前日期创建的文件),因此应该有一些结果。然而,我得到的结果是只检查并发现了月份,而没有检查和发现当天。

到目前为止我尝试过的一些更明智的事情:

grep $(date +"%b %e") *filename*
Run Code Online (Sandbox Code Playgroud)

然后我得到一行“grep:22:没有这样的文件或目录”和一个包含该月(“十月”)所有结果的列表。+%d %e使用or+'%d %e''+%d %e'代替 的+"%d %e";结果相同$()。(我这一天也有一段时间有 %d,这没有什么区别,而且据我所知,无论如何也不重要,因为相关日期现在是 22 日。)

为什么这里不考虑这一天?

shell grep date command-substitution

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

为什么 a 的值为 1?

我正在学习 shell 脚本,我正在编写一个脚本,其中列出了用户具有“7”权限的文件,即“rwx”。到目前为止,我已经写了这个:

for F in *
do
        a= $(stat -c "%a" "$F")
        echo $a
        if ((b==7))
        then
                echo $F
        fi
done
Run Code Online (Sandbox Code Playgroud)

这里a的值为“1”。我在这里做错了什么?

bash shell-script command-substitution variable

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

测试表达式中的参数扩展是否可能?

当我在中尝试以下表达式时,bash收到一条奇怪的错误消息:

[: -lt: unary operator expected
Run Code Online (Sandbox Code Playgroud)

首先是函数定义

some_func () {
  (( 3 + 5 ))
}
Run Code Online (Sandbox Code Playgroud)

还有表情

[ $(some_func) -lt 10 ] && true
Run Code Online (Sandbox Code Playgroud)

我想问题是将运算符-lt与命令替换和/或算术扩展混合在一起?

退出代码$?为 2,消息为an unary op was expected

bash arithmetic command-substitution test

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

“命令替换”中的命令顺序不正确(Bash/Dash)

为什么当您运行替换命令时,执行顺序会被破坏,如下例所示。首先chmod执行命令,echo 1然后echo 2

echo $(echo 1; echo 2; chmod 444 nonexistent_file)
Run Code Online (Sandbox Code Playgroud)

结果:

chmod: Cannot access 'nonexistent_file': No such file or directory
1 2
Run Code Online (Sandbox Code Playgroud)

bash dash command-substitution

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

Fish shell:为什么 `file `which command`` 在 zsh 和 bash 中工作,但在 Fish 中不起作用?

在切换到 Fish shell 之前,我经常使用zshwith中的各种命令which some_command。一个例子可能是:

$ file `which zsh`
/opt/local/bin/zsh: Mach-O 64-bit executable arm64
/bin/zsh:           Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64
- Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e
- Mach-O 64-bit executable arm64e]
/bin/zsh (for architecture x86_64): Mach-O 64-bit executable x86_64
/bin/zsh (for architecture arm64e): Mach-O 64-bit executable arm64e
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时fish失败了:

$ which zsh
/opt/local/bin/zsh

$ file `which zsh`
`which: cannot open ``which' (No such file or directory)
zsh`: …
Run Code Online (Sandbox Code Playgroud)

fish command-substitution

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

如何将参数扩展与命令替换一起使用?

    \n
  • 我想创建 12 个以月份命名的目录。因此,我尝试使用locale管道来获取月份名称,用逗号tr分隔它们,然后用大括号括起来并传递给mkdir. 但整体被视为一根弦。有办法避免这种情况吗?
  • \n
\n
16:07: temp \xe2\xa7\xb2 mkdir {$(locale mon | tr \\; ,)}\n\n16:18: temp \xe2\xa7\xb2 ls -lh\ntotal 4.0K\ndrwxr-xr-x. 2 john john 4.0K Dec 11 16:18 {January,February,March,April,May,June,July,August,September,October,November,December}\n\n16:18: temp \xe2\xa7\xb2 \n
Run Code Online (Sandbox Code Playgroud)\n

shell bash parameter command-substitution

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

反引号中的嵌套 echo 命令

我想知道为什么会在我的外壳中打印额外的回声。我使用的是bash4.2.46(1) 版。

echo `echo `echo $SHELL``
Run Code Online (Sandbox Code Playgroud)

一个有趣的问题是,如果我'``'$()它替换不会打印额外的回声:

echo $(echo `echo $SHELL`)
Run Code Online (Sandbox Code Playgroud)

我发现它以奇数echo命令号打印额外的回声:

echo `echo `echo `echo `echo $SHELL````
Run Code Online (Sandbox Code Playgroud)

shell bash shell-script echo command-substitution

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

如何安装“!!” 命令?

我试图!!在我新安装的 debian 上使用,但出现以下错误:

$ sudo !!
sudo: !!: command not found
Run Code Online (Sandbox Code Playgroud)

我使用!!?

另外!!,我可以调用什么,以便我实际上可以在 google 上搜索相关信息?

command-line debian command-substitution

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