在sed中使用变量 - 不确定它是否正常工作

时间:2016-01-05 14:01:10

标签: bash sed

我正在创建一个变量,并且创建它的一部分涉及sed -n。我遇到的问题是我不确定它是否正常工作。

y=$(ls -Ap | grep "/$" | sed -n "$ip")是第一行并创建y。

但是当我跑步时

echo $y我根本没有输出和空格。所以我不确定sed是否正常工作,如果不能解决它。

提前致谢。

1 个答案:

答案 0 :(得分:3)

As User 123 mentioned,问题是bash尝试展开$ip而不是$i。您可以在变量名称周围使用花括号来避免这种情况,例如${i}

但是,我建议不要使用管道解决方案:

我建议使用find:可以通过find的单次调用来完成:

find -mindepth 1 -maxdepth 1 -type d -name "*${i}*"

确保${i}已设置且不为空!否则-name将扩展为-name "**",这将匹配任何内容。您可以使用parameter substitution语法执行此操作:

find -mindepth 1 -maxdepth 1 -type d -name "*${i:-nonexistent}*"

确保nonexistent不存在! ;)