的bash变量可以是多行吗?

我写了一个脚本来列出路径条目并按关键字过滤它们.我设法使其正常工作,但是我不得不将清单写入一个临时文件中,因为在保持换行的同时我无法将其存储在内存中.是否有更好/更合适的解决方案?

 #! /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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...