Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

4
如何在此处文档中打印“ $”
如何在bash的here-doc中回显“ $”? 例如,我想在远程服务器上有一个包含内容的文件,例如$ABC=home_dir。 $ ssh hostname sudo -s <<EOF echo "$ABC=home_dir" > file EOF 但这将被视为变量。如何打印文字$?
43 bash  shell  quoting 



5
为什么默认情况下OSX登录Shell上是交互式Shell?
在Linux和据我所知的所有Unix系统中,终端仿真器默认运行交互式非登录外壳。这意味着对于bash,启动的shell将: 当一个交互的shell但不是登录shell启动时,bash读取并执行命令/etc/bash.bashrc和~/.bashrc,如果这些文件存在。使用--norc 选项可以禁止这种情况 。 该--rcfile 文件选项将强制bash读取和文件,而不是执行命令/etc/bash.bashrc和~/.bashrc。 对于登录shell: 当bash作为交互式登录shell或带有--login选项的非交互式shell被调用时,它首先从文件/etc/profile(如果该文件存在)中读取并执行命令。读取文件后,它会查找~/.bash_profile,~/.bash_login以及~/.profile以该顺序,并读取并从存在并且可读的第一个执行命令。 --noprofile启动外壳程序以禁止此行为时,可以使用该选项。 但是,在OSX上,从默认终端(Terminal.app)中启动的默认外壳程序(即bash)实际上是源代码~/.bash_profile或~.profile其他内容。换句话说,它的作用类似于登录外壳程序。 主要问题:为什么默认的交互式shell是OSX上的登录shell?为什么OSX选择这样做?这意味着~/.bashrc在OSX上所有基于shell的东西的说明/教程中提到的更改内容都将失败,反之亦然~/.profile。尽管如此,尽管可以对苹果提出许多指控,但雇用无能或愚蠢的开发人员并不是其中之一。大概他们对此有充分的理由,那为什么呢? 子问题:Terminal.app是否实际上运行交互式登录外壳,或者它们是否改变了bash的行为?这是特定于Terminal.app还是与终端模拟器无关?
43 bash  osx 

3
使用exec重定向所有后续命令的stderr
我有一个bash文件,我需要将所有输出重定向到一个文件,调试日志以及终端。我需要将stdout和stderr都重定向到调试,并在脚本中将其记录为所有命令。 我不想为2>&1 | tee -a $DEBUG文件中的每个命令添加内容。我可以忍受| tee -a $DEBUG。 我记得有一种方法可以这样做exec 2>&1。 目前,我正在使用类似以下内容的东西: #!/bin/bash DEBUGLOG=/tmp/debug exec 2>&1 somecommand | tee -a $DEBUGLOG somecommand2 | tee -a $DEBUGLOG somecommand3 | tee -a $DEBUGLOG 但它不起作用。有没有人有解决方案/可以解释原因?





7
为什么[AZ]匹配bash中的小写字母?
在我所知道的所有shell中,都rm [A-Z]*删除了以大写字母开头的所有文件,但是使用bash删除了以字母开头的所有文件。 由于在使用bash-3和bash-4的Linux和Solaris上存在此问题,因此它不能是由libc中的错误模式匹配器或配置错误的语言环境定义引起的错误。 是这种奇怪而危险的行为,还是仅仅是多年来未修复的错误?
42 bash  shell  wildcards  locale 

2
cat <> file`如何工作?
cat &lt; file将文件的内容打印到stdout。 cat &gt; file读取标准输入,直到检测到Ctrl+ D并将输入文本写入文件。 cat &lt;&gt; file,至少在我的Bash版本中,愉快地打印文件的内容(无错误),但不修改文件,也不更新修改时间戳。 Bash标准如何证明&gt;在第三条陈述中似乎被忽略的理由?更重要的是,它在做什么?



1
在终端中可以有vim键绑定吗?
我已经习惯了vim绑定(例如按w转到单词,按dw删除单词,等等),以及它的模式(插入,正常,视觉),出于好奇,我想知道:这里有一些这种行为方式的实现以及从vim到我的终端的绑定? 有插入模式,普通模式等...
42 bash  shell  terminal  vim  zsh 

5
环境变量到底是什么?
我知道这VARIABLE=value会创建一个环境变量,并export VARIABLE=value使它可用于当前shell创建的进程。env显示当前的环境变量,但是它们住在哪里?什么包括环境变量(或就此而言,环境)?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.