我写了一个脚本来列出路径条目并按关键字进行过滤。我设法让它工作,但是我不得不将列表写入临时文件中,因为我无法在保留换行符的同时将其存储在内存中。是否有更好/更合适的解决方案?
#! /bin/bash
tr ':' '\n' <<< $PATH > tmp
if (( $# > 0 )); then
for W
do
grep $W < tmp
done
else
cat tmp
fi
rm tmp
我写了一个脚本来列出路径条目并按关键字进行过滤。我设法让它工作,但是我不得不将列表写入临时文件中,因为我无法在保留换行符的同时将其存储在内存中。是否有更好/更合适的解决方案?
#! /bin/bash
tr ':' '\n' <<< $PATH > tmp
if (( $# > 0 )); then
for W
do
grep $W < tmp
done
else
cat tmp
fi
rm tmp
是的,变量可以包含换行符。在使用变量时需要引用它。你可以这样编写脚本:
tmp=$(tr ':' '\n' <<< $PATH)
if (( $# > 0 )); then
for W; do
grep $W <<< "$tmp"
done
else
echo "$tmp"
fi
keyword
中的正则表达式匹配的PATH
目录。它在子shell中运行,以隔离对IFS
所做的更改。(IFS=:;
for W in $PATH; do
if [[ $W =~ $keyword ]]; then
echo "$W"
fi
done
)
for W in `echo $PATH | tr ':' '\n'`;
do
grep <Search pattern> $W
done
请检查这是否有助于解决您的问题。