小编vol*_*ron的帖子

bash 是否有一个钩子来确定子 shell 何时退出?

bash我启动一个t/cshshell,它更新stty erase ^H.cshrc 中的 tty 输入 ( ),但是当exit-ing 并返回到 bash 时,backspace密钥不再起作用。这是因为 bash 使用readline,我需要重置擦除 ( stty erase ^?)。

如果我理解trap正确,似乎我可以从 t/csh 进程中捕获 t/csh 出口,并在它退出后运行命令。但是,我更喜欢在 bash 中进行捕获,理想情况下,它会检测到 shell 被调用/退出,然后运行脚本来重置其配置。

这是首选,因为我可以调用任意数量的外壳程序(例如,dash, zsh),这可能会无意中修改特定于 bash 的设置。与其trap为每个 shell维护多个命令,不如为 bash 设置一个命令。


我的理解trap正确吗?如果是这样,是否可以bash检测到子 shell 退出然后运行脚本?

linux bash shell tcsh

7
推荐指数
1
解决办法
1671
查看次数

哪些 bash rc 文件在非交互式/非登录 shell 上运行?

我的理解

  • 没有为非交互式/非登录 shell 调用 rc 文件;例如,那些由cron运行的
    (我不确定这一点,并且会依靠社区的专业知识)

  • 非交互式shell 需要设置BASH_ENV环境变量,这样才能将其设置为特定的 rc 文件(例如,BASH_ENV=$HOME/.bash_profile

希望

我不确定是否有过多的 rc 文件可用,所以很好奇是否有我不熟悉的文件。希望找到一个满足以下条件的rc文件:

  • 无论交互/登录模式如何调用,因此全局 shell 环境变量可以在一个地方设置
  • 表现更像 csh/tcsh

linux bash cron bashrc bash-scripting

6
推荐指数
1
解决办法
3503
查看次数

Linux:如何评估 STDOUT 的内容?

假设您有一个带有某种终端命令的文件。每行如何执行?你能把 more 的输出传送到一个eval?

%> more ./foo.txt
Run Code Online (Sandbox Code Playgroud)

编辑:

在从评论中获得一些帮助/指导之后,我想我还应该注意,我已经有一段时间没有完成任何 shell 脚本了,所以虽然我说eval我可能是指echo或其他一些执行代码的方式。

如果 foo.txt 包含多行代码,但我想执行包含 的行echo 'bar bar',我正在寻找一种方法来做到这一点,假设一个grep. 逻辑上类似于:

grep echo foo.txt | xargs echo
Run Code Online (Sandbox Code Playgroud)

linux bash sh tcsh

4
推荐指数
1
解决办法
3513
查看次数

标签 统计

bash ×3

linux ×3

tcsh ×2

bash-scripting ×1

bashrc ×1

cron ×1

sh ×1

shell ×1