[shell脚本求助]不存在的未知问题?
本帖最后由 ctOS_ 于 2020-4-27 21:37 编辑这是今天教linux的老师布置的作业
这是我敲的代码
这是输出结果(满屏的文件不存在)
希望这方面的大佬帮忙看看问题出在哪里
另外,在输出完程序之后,ls里确实有一个txtfiles目录
那怎么会不存在呢? touch 后面的引号都去了。 本帖最后由 ctOS_ 于 2020-4-27 21:30 编辑
laycher 发表于 2020-4-27 21:18
touch 后面的引号都去了。
如果我理解的没错的话,好像不太行
好厉害啊!虽然看不懂
laycher 发表于 2020-4-27 21:18
touch 后面的引号都去了。
#!/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
这是代码
大佬您看看 #!/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
本帖最后由 yushangwl 于 2020-4-27 22:21 编辑
ctOS_ 发表于 2020-4-27 21:27
#!/bin/bash
isTextDir(){
if [ -e ~/txtfiles ]
楼上已经贴出代码了。首先判断文件夹用d参数e也可以,还有就是~是特殊符号不能用引号包围他,否则会被认为是普通字符,所以chmod那行也是有问题的你自己改一下,还有变量如果放在引号里面可以用${var}的方式和字符拼接比如“a${var}b” yushangwl 发表于 2020-4-27 22:18
楼上已经贴出代码了。首先判断文件夹用d参数e也可以,还有就是~是特殊符号不能用引号包围他,否则会被认 ...
谢谢您的耐心解答{:301_999:} 本帖最后由 yushangwl 于 2020-4-28 00:06 编辑
ctOS_ 发表于 2020-4-27 22:38
谢谢您的耐心解答
对了其实创建10个文件可以不用循环,chmod也可以用
touch $(date "+%Y-%m-%d")-{1..10}.txt yushangwl 发表于 2020-4-28 00:04
对了其实创建10个文件可以不用循环,chmod也可以用
touch $(date "+%Y-%m-%d") ...
长见识了,谢谢
页:
[1]