请您澄清一下使用-l
选项exec
shell命令。当我运行exec ls | cat
和exec -l ls | cat
时,我没有注意到任何区别。exec shell命令的-l选项
1
A
回答
2
exec
的-l
选项在命令名称的开头添加了一个-
。例如:
exec -l diff | head
-diff: missing operand after '-diff'
-diff: Try '-diff --help' for more information.
注diff
前-
无处不在。
这一切的关键?如果在命令启动shell之前有一个-
,它将充当登录shell。从man bash
:
登录shell是其参数为零的第一个字符为 - 或一个以--login选项开头的shell。
现在,man exec
指出:
如果-l选项提供,外壳放置一个破折号,在传递到指挥零参数的开始。这是 什么登录(1)。
因此exec -l bash
将运行bash
作为登录shell。为了验证这一点,我们可以用这样一个事实:登录bash的执行文件~/.bash_profile
,所以:
$ cat ~/.bash_profile
#!/bin/sh
printf "I am a login shell!\n"
如果我开始登录的bash,命令printf "I am a login shell!\n"
将被执行。现在用exec
进行测试:
$ exec bash
$
什么都不显示,我们在非登录shell。
$ exec -l bash
I am a login shell!
$
这里我们有一个登录shell。
相关问题
- 1. Golang,exec和背部蜱shell命令
- 2. 命令 '找到-exec' shell脚本
- 3. Shell命令不能通过exec()在php
- 4. ADB拒绝shell命令(ls -l命令/数据)
- 5. ADB拒绝shell命令(ls -l命令):关闭
- 6. 的Makefile -L命令
- 7. Shell命令适用于命令行,但不适用于PHP exec
- 8. 这个命令是做什么的? “exec bash -l”
- 9. PHP shell命令
- 10. AngularJs EXEC命令
- 11. shell命令
- 12. 查询ragarding Solaris查找带-exec选项的命令
- 13. 调用命令提示符并通过VBA中的Shell Exec执行命令
- 14. Docker exec npm命令
- 15. 使用PHP的exec重定向shell命令的输出()函数
- 16. 如何在{}选项中使用find -exec命令
- 17. 如何使用python的命令行shell传递命令行选项?
- 18. php shell exec的作用与直接运行命令不同
- 19. exec命令的Linux shell脚本语法错误
- 20. LS -l命令输出
- 21. 与-exec find命令不运行-exec命令
- 22. Java和exec命令 - 管多个命令
- 23. 命令 - 在执行exec()命令
- 24. 多EXEC命令PHP的
- 25. 的Java EXEC linux命令
- 26. Perl的exec命令失败
- 27. PHP的exec()命令问题
- 28. Shell命令不笨
- 29. 命令行选项
- 30. 命令行选项
http://ss64.com/bash/exec.html –
谢谢!通过该指南。如果可能的话,你能否通过一个例子来解释它。 – Rane