'hhighlighter'包装器脚本说找不到命令


0

我已经从https://github.com/paoloantinori/hhighlighter获得了包装脚本'hhighlighter',该脚本可以为stdout中的任何颜色着色。我遵循了有关安装ack-grep的说明,在〜/ .bashrc中为ack = ack-grep创建了别名,将h()函数放在〜/ .bashrc中,在终端中键入时一切正常。但是,当将完全相同的命令放在bash脚本中时,它表示未找到命令。我会在这里举例说明...

root@kali:~# echo "abcd" | h a b c d
abcd

这是我的脚本的样子

#!/bin/bash  
echo "abcd" | h a b c d

就像键入的命令一样,但是这里是运行脚本时的输出

root@kali:~# ./test.sh
./test.sh: line 1: h: command not found

当直接在终端中键入而不是在bash脚本中使用完全相同的命令时,如何工作?


您的脚本是否以#!/bin/bash
wurtel

我重新设计了该问题,以期使它更有意义
Will Hughes

我正在投票结束这个问题,因为有人在unix.stackexchange.com/questions/169780/上
Sathyajith Bhat

Answers:


1

帮助我的解决方案是强制脚本在带有#!/bin/bash -i标头的交互模式下运行。

但是,高级Bash脚本指南会警告您一些奇怪的后果:

请注意,即使没有错误,这也可能导致脚本行为不稳定或显示错误消息。

但是我还没有观察到这样的事情。


0

~/.bashrc 仅在交互式bash会话启动期间读取。

如果希望始终读取它,请将名称放在BASH_ENV环境变量中:

export BASH_ENV=$HOME/.bashrc
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.