我和我的合作伙伴在使用这个基本的Linux脚本时遇到了麻烦。我们的讲师把一个高级的Linux脚本包扔给我们去调试,我们都很迷茫。脚本应该删除文件名中包含嵌入空格的文件,而我使用的是实际的rm命令。我得到了“缺少操作数”,我不确定该怎么办。
#!/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发布于 2014-11-06 01:38:36
需要命令替换才能将ls | grep " "的值放入badname变量中
以下任一选项将起作用:
badname=`ls | grep " "`或
badname=$(ls | grep " ")您可以阅读有关命令替换here的更多信息。希望这能有所帮助
发布于 2014-11-06 01:41:45
badname= ls | grep " "显然是错的。试试这个:
#!/bin/bash
TMPFILE="tmp.txt"
ls | grep " " > $TMPFILE
cat $TMPFILE | while read -r LINE
do
rm "$LINE"
donehttps://stackoverflow.com/questions/26763444
复制相似问题