吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1058|回复: 9
收起左侧

[讨论] [shell脚本求助]不存在的未知问题?

[复制链接]
ctOS_ 发表于 2020-4-27 21:00
本帖最后由 ctOS_ 于 2020-4-27 21:37 编辑

这是今天教linux的老师布置的作业
图片.png

这是我敲的代码

图片.png

这是输出结果(满屏的文件不存在)

图片.png

希望这方面的大佬帮忙看看问题出在哪里




另外,在输出完程序之后,ls里确实有一个txtfiles目录

图片.png

那怎么会不存在呢?
图片.png
图片.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

laycher 发表于 2020-4-27 21:18
touch 后面的引号都去了。
 楼主| ctOS_ 发表于 2020-4-27 21:25
本帖最后由 ctOS_ 于 2020-4-27 21:30 编辑
laycher 发表于 2020-4-27 21:18
touch 后面的引号都去了。

图片.png 图片.png
如果我理解的没错的话,好像不太行
chaizy1 发表于 2020-4-27 21:27
 楼主| ctOS_ 发表于 2020-4-27 21:27
laycher 发表于 2020-4-27 21:18
touch 后面的引号都去了。

[Shell] 纯文本查看 复制代码
#!/bin/bash
isTextDir(){
        if [ -e ~/txtfiles ]
        then
                ls -l "~/txtfiles"
        else
                mkdir "~/txtfiles"
        fi
}
makeTxt(){
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                touch ~/txtfiles/$prefix$i.txt
        done
}
chmodTxt(){
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                chmod 660 "~/txtfiles/"$prefix$i".txt"
        done
}
writeTxt(){
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                name=$prefix$i".txt"
                echo "contents:"$name > "~/txtfiles/"$name
        done
}
bakTxt(){
        path="~/txtfiles/"
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                name=$path$prefix$i".txt"
                mv $name $name".bak"
                arr=$arr$name".bak "
        done
        tar -cvzf "txtfile.tar.gz" $arr
}

isTextDir
makeTxt


这是代码
大佬您看看
yushangwl 发表于 2020-4-27 22:09
[Shell] 纯文本查看 复制代码
#!/bin/bash
isTextDir(){
        if [ -d ~/txtfiles ]
        then
                ls -l ~/txtfiles
        else
                mkdir ~/txtfiles
        fi
}
makeTxt(){
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                touch ~/txtfiles/$prefix$i.txt
        done
}
chmodTxt(){
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                chmod 660 "~/txtfiles/"$prefix$i".txt"
        done
}
writeTxt(){
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                name=$prefix$i".txt"
                echo "contents:"$name > "~/txtfiles/"$name
        done
}
bakTxt(){
        path="~/txtfiles/"
        prefix=`date +%Y"."%m"."%d"-"`
        for((i=1;i<=10;i++))
        do
                name=$path$prefix$i".txt"
                mv $name $name".bak"
                arr=$arr$name".bak "
        done
        tar -cvzf "txtfile.tar.gz" $arr
}
 
isTextDir
makeTxt

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ctOS_ + 1 + 1 真就不该加那么多引号,我的错

查看全部评分

yushangwl 发表于 2020-4-27 22:18
本帖最后由 yushangwl 于 2020-4-27 22:21 编辑
ctOS_ 发表于 2020-4-27 21:27
[mw_shl_code=shell,true]#!/bin/bash
isTextDir(){
        if [ -e ~/txtfiles ]

楼上已经贴出代码了。首先判断文件夹用d参数e也可以,还有就是~是特殊符号不能用引号包围他,否则会被认为是普通字符,所以chmod那行也是有问题的你自己改一下,还有变量如果放在引号里面可以用${var}的方式和字符拼接比如“a${var}b”
 楼主| ctOS_ 发表于 2020-4-27 22:38
yushangwl 发表于 2020-4-27 22:18
楼上已经贴出代码了。首先判断文件夹用d参数e也可以,还有就是~是特殊符号不能用引号包围他,否则会被认 ...

谢谢您的耐心解答
yushangwl 发表于 2020-4-28 00:04
本帖最后由 yushangwl 于 2020-4-28 00:06 编辑
ctOS_ 发表于 2020-4-27 22:38
谢谢您的耐心解答

对了其实创建10个文件可以不用循环,chmod也可以用
[Shell] 纯文本查看 复制代码
touch $(date "+%Y-%m-%d")-{1..10}.txt
 楼主| ctOS_ 发表于 2020-4-28 17:18
yushangwl 发表于 2020-4-28 00:04
对了其实创建10个文件可以不用循环,chmod也可以用
[mw_shl_code=shell,true]touch $(date "+%Y-%m-%d") ...

长见识了,谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 17:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表