shell文件书写规则、执行

本文详细讲解了shell脚本执行中的Permission denied问题解决、基本语法与规则,包括文件操作、字符串处理、grep使用、计数功能示例。通过实例演示了如何统计C语言文件和字符出现次数,提供了解决常见问题和技巧的指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.shell文件执行

新建shell文件:shell.sh

执行:cd进父目录 ./shell.sh

报错:Permission denied

报错是因为shell文件有语法错误。

chmod 777 *.sh

参考:运行shell脚本报错:Permission denied_一只奋斗的小强的博客-优快云博客

2.shell文件书写规则

2.1 输出到文件

echo "hello" > 1.txt

会自动创建1.txt并输出。

2.2 输出信息覆盖原信息

echo "hello" >> 1.txt

>>是追加,>是直接覆盖

2.3 echo输出不要换行

echo -n "hello" >> 1.txt

echo输出默认是换行的,不换行的话需要加-n

参考:echo不换行输出的两种方式_panamera12的博客-优快云博客_echo 不换行

2.4 涉及文件操作的判断 -f

-f是文件存在

参考:shell 之 -f -z -e -o -a -d_Limeng_L的博客-优快云博客_shell-f

2.5 shell定义字符串,以及"" ''区分

直接写即可

file="1.txt"        echo "hello" > $file

""会把$等内容输出,而''会原封不动输出字符串($也认为是字符)。

参考:Shell字符串详解

2.6 grep结果赋值(没测)

如果直接输出的话,是grep的执行是否成功。需要用""给引起来,注意转义。

参考:grep查询文本:问一个简单shell问题,将grep的输出赋值给一个变量 - 百度文库

3.例子

上面的总结,都是源于例子实践总结。

比如:统计C语言个数。要注意空格的规范,当然注释是不能执行的。

#! /bin/bash
 declare -i count=0;//用来计数
 for name in  $(ls *.c)
 do
   if [ -f $name ]//注意两端空格
   then echo "$name";
   count=count+1;
   fi
  done
  echo "$count"

源自:用shell程序列举当前目录下的所有.c文件,统计并输出文件个数(亲测有效,如果报错可以看看代码格式对不对)_jiluoluoa的博客-优快云博客_shell 当前目录下所有文件

比如:统计字符出现的次数。

grep -o "hello" temp.txt | wc -l

参考:Linux Shell之统计某个字符串在文件中的出现次数_二木成林的博客-优快云博客_linux统计字符串出现次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值