为什么$ <filename不能从`filename`运行cmd而是$`<filename`和$ exec <filename起作用?

杰克·沃尔特
root@raspberrypi:~# cat >test
echo succeed
root@raspberrypi:~# <test
root@raspberrypi:~# `<test`
succeed

我想原因是enter信号缺失。但是如何发送enter

迈克尔·荷马

在Bash和其他一些shell中,`<test`是以下项的简写`cat test`

$(cat file)可以用等效的命令替换命令,但是速度更快$(< file)。

`...`-style命令替换也是如此)。

那意味着你的命令

$ `<test`

是相同的

$ `cat test`

-也就是说,将test文件的内容插入命令行中,以代替命令替换表达式,然后,由于它位于命令的开头,因此以第一个单词作为命令名执行结果


另一方面,

$ <test

只是一个空命令,其标准输入从test文件重定向到任何类似POSIX的shell中它本质上与: <test相同:不执行任何操作均会成功。这不是很有用,但是如果不存在或无法读取则会引发错误test

相反的方向>test会创建或截断test,有时很有用。


Bash,zsh,ksh等`<test`and的特殊行为$(<test)与命令替换通常复制同一命令的普通行为的方式不一致。对于诸如以下命令,它是一种便利和性能功能

printf '%s@%s\n' $(<username.txt) $(<host.txt)

想要将文件内容读入命令行,并节省一个额外的过程(不生成cat并让外壳读取文件本身)。

区别与之无关Enter或类似,这只是一种特殊情况。我不建议使用$(<file)执行文件:使用.source或类似的方法来说明您在做什么(即使eval确实涉及到它)。我什$(<file) 不建议您使用它除非您确实确定自己处于一个紧要关头,在其中产生一个额外的cat过程很重要,因为这种情况很少见,人们会以您在这里的确切方式感到困惑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linux中filename和./filename有什么区别

来自分类Dev

为什么我不能使用`filename.open'而不是`open(filename)'?

来自分类Dev

为什么生成<filename> $ 1.class?

来自分类Dev

Linux命令行中cat> filename和cat >> filename之间有什么区别

来自分类Dev

Word VBA - Documents.Open FileName 不起作用

来自分类Dev

为什么RewriteCond%{SCRIPT_FILENAME}!-d破坏我的RewriteRule

来自分类Dev

为什么此gs命令在--filename.pdf上失败?

来自分类Dev

发出“ exec&> filename”后,将输出恢复到终端

来自分类Dev

什么是>> filename.txt呢?

来自分类Dev

为什么grep -r --include = *。js *> dirname / .filename不能将所有.js文件写入单个文件?

来自分类Dev

为什么`exec startx`在13.10中不起作用?

来自分类Dev

为什么exec()在chroot()之后不起作用?

来自分类Dev

为什么`exec startx`在13.10中不起作用?

来自分类Dev

为什么exec()在chroot()之后不起作用?

来自分类Dev

为什么下面的exec命令不起作用

来自分类Dev

为什么“导出”在docker exec中不起作用?

来自分类Dev

'2>&1'和'&> filename'之间的区别

来自分类Dev

在Visual Studio 2019 C_language中不起作用fopen_s(&file,“ filename”,mode)

来自分类Dev

#include <filename>和#inlude特定于LLVM / Clang的“文件名”之间有什么区别?

来自分类Dev

如果[[-e $ filename]]意味着什么

来自分类Dev

R中的stringr:当filename和filename.extension共享公共字符时,从filename.extension中提取文件名

来自分类Dev

为什么`hg diff -I filename'不显示我的文件埋在子目录中?

来自分类Dev

为什么RewriteCond%{SCRIPT_FILENAME}!-d破坏了我的RewriteRule

来自分类Dev

为什么vim搜索比“ cat fileName | grep targetText”要慢得多?

来自分类Dev

为什么在松露exec中等待起作用,然后.then不起作用?

来自分类Dev

为什么'find -exec cmd {} +'必须以'{} +'结尾?

来自分类Dev

发现-exec不能正常工作,为什么?

来自分类Dev

发现-exec不能正常工作,为什么?

来自分类Dev

openFileInput(FILENAME)nullPointerException:FILENAME不为空

Related 相关文章

  1. 1

    Linux中filename和./filename有什么区别

  2. 2

    为什么我不能使用`filename.open'而不是`open(filename)'?

  3. 3

    为什么生成<filename> $ 1.class?

  4. 4

    Linux命令行中cat> filename和cat >> filename之间有什么区别

  5. 5

    Word VBA - Documents.Open FileName 不起作用

  6. 6

    为什么RewriteCond%{SCRIPT_FILENAME}!-d破坏我的RewriteRule

  7. 7

    为什么此gs命令在--filename.pdf上失败?

  8. 8

    发出“ exec&> filename”后,将输出恢复到终端

  9. 9

    什么是>> filename.txt呢?

  10. 10

    为什么grep -r --include = *。js *> dirname / .filename不能将所有.js文件写入单个文件?

  11. 11

    为什么`exec startx`在13.10中不起作用?

  12. 12

    为什么exec()在chroot()之后不起作用?

  13. 13

    为什么`exec startx`在13.10中不起作用?

  14. 14

    为什么exec()在chroot()之后不起作用?

  15. 15

    为什么下面的exec命令不起作用

  16. 16

    为什么“导出”在docker exec中不起作用?

  17. 17

    '2>&1'和'&> filename'之间的区别

  18. 18

    在Visual Studio 2019 C_language中不起作用fopen_s(&file,“ filename”,mode)

  19. 19

    #include <filename>和#inlude特定于LLVM / Clang的“文件名”之间有什么区别?

  20. 20

    如果[[-e $ filename]]意味着什么

  21. 21

    R中的stringr:当filename和filename.extension共享公共字符时,从filename.extension中提取文件名

  22. 22

    为什么`hg diff -I filename'不显示我的文件埋在子目录中?

  23. 23

    为什么RewriteCond%{SCRIPT_FILENAME}!-d破坏了我的RewriteRule

  24. 24

    为什么vim搜索比“ cat fileName | grep targetText”要慢得多?

  25. 25

    为什么在松露exec中等待起作用,然后.then不起作用?

  26. 26

    为什么'find -exec cmd {} +'必须以'{} +'结尾?

  27. 27

    发现-exec不能正常工作,为什么?

  28. 28

    发现-exec不能正常工作,为什么?

  29. 29

    openFileInput(FILENAME)nullPointerException:FILENAME不为空

热门标签

归档