所以我试图制作一个包含egrep并接受数字变量的脚本
#!/bin/bash
var=$1
list="egrep "^.{$var}$ /usr/share/dict/words"
cat list
例如,如果var为5,我希望此脚本以5个字符打印出每一行。由于某种原因,脚本无法执行此操作。帮助将不胜感激!
答案 0 :(得分:3)
您的脚本不起作用,因为这些行存在一些问题:
list="egrep "^.{$var}$ /usr/share/dict/words"
cat list
list
分配文字字符串,而不是命令的输出,cat
不会打印变量的内容,echo
会打印出来。所以:
#!/bin/bash
var="$1"
list="$(egrep '^.{'"$var"'}$' /usr/share/dict/words)"
echo "$list"
应该工作。
甚至更好的是,您可以仅使用awk命令:
awk 'length==5' /usr/share/dict/words
带有$1
或任何其他变量:
awk -v n="$1" 'length==n' /usr/share/dict/words