我的合作伙伴和我在使用这个基本的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
答案 0 :(得分:1)
您需要命令替换才能将ls | grep " "
的值转换为badname
变量
以下任一选项都可以使用:
badname=`ls | grep " "`
或
badname=$(ls | grep " ")
您可以阅读有关命令替换here的更多信息。 希望这有帮助
答案 1 :(得分:0)
badname= ls | grep " "
显然是错误的。试试这个:
#!/bin/bash
TMPFILE="tmp.txt"
ls | grep " " > $TMPFILE
cat $TMPFILE | while read -r LINE
do
rm "$LINE"
done