首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带变量的Linux rm命令

问带变量的Linux rm命令
EN

Stack Overflow用户
提问于 2014-11-06 01:30:09
回答 2查看 2.3K关注 0票数 1

我和我的合作伙伴在使用这个基本的Linux脚本时遇到了麻烦。我们的讲师把一个高级的Linux脚本包扔给我们去调试,我们都很迷茫。脚本应该删除文件名中包含嵌入空格的文件,而我使用的是实际的rm命令。我得到了“缺少操作数”,我不确定该怎么办。

代码语言:javascript
复制
#!/bin/bash

# This script is supposed to delete all filenames in current directory
#+ containing embedded spaces.
# It doesn't work
# Why not?


badname= ls | grep " "

# Try this:
echo "$badname"

rm "$badname"

exit 0
EN

回答 2

Stack Overflow用户

发布于 2014-11-06 01:38:36

需要命令替换才能将ls | grep " "的值放入badname变量中

以下任一选项将起作用:

代码语言:javascript
复制
badname=`ls | grep " "`

或

代码语言:javascript
复制
badname=$(ls | grep " ")

您可以阅读有关命令替换here的更多信息。希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2014-11-06 01:41:45

badname= ls | grep " "显然是错的。试试这个:

代码语言:javascript
复制
#!/bin/bash
TMPFILE="tmp.txt"

ls | grep " " > $TMPFILE

cat $TMPFILE | while read -r LINE
do
        rm "$LINE"
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26763444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档