我正在使用 Mac OS X。我正在尝试使用 cp 命令为这样的构建脚本复制一些文件。
cp ./src/*/*.h ./aaa
Run Code Online (Sandbox Code Playgroud)
但是如果 ./src 目录中没有 .h 文件,这个命令会触发一个错误。如何使命令不触发错误?(无声失败)错误使构建结果失败,但我只想在只有一些头文件时复制。
有没有办法做一个远程“ls”,就像“scp”在标准linux shell中做远程复制一样?
使用|Linux 中的管道 ( ) 功能,我可以将标准输入转发链接到一个或多个输出流。
我可以使用tee将输出拆分为单独的子进程。
是否有连接两个输入流的命令?
我该怎么办?差异是如何工作的?
我已经成为 zsh 用户有一段时间了(在那个 tcsh 之前和那个 csh 之前)。我对它很满意,但想知道 zsh 中是否存在任何引人注目的 bash 功能。相反,是否有 bash 中不存在的 zsh 功能。我目前的感觉是 bash 更好:
不想在这里开始一场宗教战争,这就是为什么我只是在寻找仅存在于一个外壳中的功能。
我怎么知道(in ~/.bashrc)我是否在交互模式下运行,或者说,通过 ssh 执行命令。.bashrc如果是后者,我想避免打印 ANSI 转义序列。
如何在 Linux 中隐藏 shell 应用程序的屏幕输出 (printf)?
寻找这样的东西?有任何想法吗?
cmd | prepend "[ERRORS] "
[ERROR] line1 text
[ERROR] line2 text
[ERROR] line3 text
... etc
Run Code Online (Sandbox Code Playgroud) “登录”和“交互式” bash shell 有什么区别?我在下面引用了维基百科,但有人能给出更好的答案吗?
编辑:这是一个社区维基,所以也许不是投票关闭,您可以提供示例说明哪些情况需要哪种类型的 $SHELL
启动脚本
当 Bash 启动时,它会执行各种不同脚本中的命令。
当 Bash 作为交互式登录 shell 被调用时,它首先从文件 /etc/profile 读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的命令中读取和执行命令。
当登录 shell 退出时,Bash 从文件 ~/.bash_logout(如果存在)读取并执行命令。
当一个不是登录 shell 的交互式 shell 启动时,Bash 从 ~/.bashrc 读取并执行命令(如果该文件存在)。这可以通过使用 --norc 选项来禁止。--rcfile 文件选项将强制 Bash 从文件而不是 ~/.bashrc 读取和执行命令。
在 bash 中,我可以做EDITOR=vim crontab -e. 我可以在鱼壳中获得类似的效果吗?