shell写的一个小脚本

想用shell脚本实现对一个文件夹里所有的图片的像素转换

这里错误的几个地方:

1.定义变量时,变量名不加美元符号($),如:

  variableName="value"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

2.使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:

  1. your_name="mozhiyan"
  2. echo $your_name
  3. echo ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

  1. for skill in Ada Coffe Action Java
  2. do
  3. echo "I am good at ${skill}Script"
  4. done

如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。推荐给所有变量加上花括号,这是个好的编程习惯。

3.变量运算:

s=0                                    #定义一个求和变量,初值为0。

t=`expr$1**$2`                        #用expr改变运算顺序,求x的y次方。

t=$[t*3]                               #t乘以3。

s=$[s+t]                               #结果相加。

t=$[$1**2]                             #求x的平方。

t=$[t*4]                               #结果乘以4。

s=$[s+t]                               #结果相加。

t=`expr$2*5`                          #求5y的值。

s=$[s+t]                               #结果相加。

s=$[s+6]                               #结果加上6。

echo$s                                #输出结果。

echo$((a%b))                          #取余

正确代码:

#!/bin/bash

#mkdir detection-crowdai_new

count=0
for image in $(ls detection-crowdai)
do
    count=$[count+1]
    echo "Hello World !"  echo $image
    #convert -resize 800x500 image image
done

echo $count

$(ls detection-crowdai)相当于一个变量了,实现了对文件夹里所有文件的访问。echo $image能显示文件夹下所有的文件名

detection-crowdai是在~下的,因为这个shell脚本就在~目录下,所以不要加绝对路径:/home/bnrc/detection-crowdai,也不要写成/detection-crowdai,这样都会报错说找不到文件。

时间: 2024-10-06 01:01:23

shell写的一个小脚本的相关文章

使用寻路算法写的一个小项目

用寻路算法写的一个小项目 地址 https://a1115040996.github.io/arithmetic/html/寻路应用.html 没来得及仔细优化,后面再优化 代码如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="t

简易的shell ---- MOS 的一个小练习题

想到自己的好多图片还有代码在上一次硬盘挂掉的时候丢失, 心中就是阵痛... 这个简单的shell代码被放在临时的pdf文档中得以被保留了下来... 阿门...今天想写个简单的数据库的时候, 感觉是不是要做个交互页面, 不让用户写程序, 模仿MySQL简单的命令, 用户傻瓜化就好了... 交互的方式可以是shell.  其实中科院孟宁老师的一个OO课的前几课的一个小作业就是自己写个shell. 不难. RTFSC 于是... demo如下: /***************************

原生JS写了一个小demo,根据输入的数字生成不同背景颜色的小方块儿~

昨天练习写了这个小demo,个人觉得通过设置定位元素left和top的值,来实现换行的功能,这种方法很巧妙~ 另外,如下代码中的随机颜色的获取,还请各位前辈多多指教:需要改进的地方:或者有没有更好的方法. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text

如何使用while循环写一个小脚本?

在shell里使用while循环写成这样格式的交互式脚本,a和b都等于一个整数,要求报错有提示: a-b=? a+b=? a*b=? a/b=? a**b=? a%b=? 解:首先我们分析一下题意,输出2个整数的加 减 乘 除 幂 取余的结果,要求不要报错可以理解为只能输入2个整数,ready go! while true #循环一直为真 do read -t 5 -p '请输入2个整数:' a b #用read读ab两个数并提示,5秒未输入即超时 if [[ -z "$b" ]];

用GO按老大要求写了一个小工具,用他脚本下载日志文件,然后让开发自己去下载

package main import ( "archive/tar" "bufio" "bytes" "compress/gzip" "flag" "fmt" "io" "net/http" "os" "os/exec" "regexp" "sort" "t

写的一个perl脚本,用于发送远程MySQL命令

想写一些简化管理操作的脚本,下面是基础脚本之一. 对于一个从来没使用过perl脚本的我来说还是有些难度的,直接上代码. 此脚本用于发送远程MySQL命令并且接收结果,功能比较简单,后面会渐渐完善. #!/usr/bin/perl use Getopt::Long; use DBI; Getopt::Long::GetOptions( 'host|h=s' => \$host, 'user|u=s' => \$user, 'password|pw=s' => \$password, 'po

在压缩话单中过滤指定IP的一个小脚本

工作需要,需要过滤出含有指定的IP段的话单,编写的脚本名字叫 filter.sh #!/bin/bash TARGET_PATH=/data/flume/flume_exec_log/Dst_for_flume.txt   此处直接写绝对路径的指定输出文件 PATTERN1="133.23.10[123456]."              此处为过滤的字段,因为话单中肯定是包含IP的,所以最后边的匹配0~255没有写PATTERN2="133.23.8[0-9]."

js 利用throw 写的一个小程序

在下边的小程序中比较特殊的是使用isNaN()函数判断一个参数是不是数字, 1 <!DOCTYPE html> 2 <!DOCTYPE html> 3 <html> 4 <head> 5 <title></title> 6 7 <script type="text/javascript"> 8 function myFunction() { 9 10 var str = document.getElem

Dos 写的一个简单脚本 + 乱码问题

项目结构 项目名称--|--classes |--lib |--startup.bat @echo off    ::需要修改的几个参数    set arg0=XXX    set arg1=XXX    set arg2=XXX    set dir=XXX    ::修改dos编码为UTF-8    chcp 65001     set JAVA_HOME=C:\Java\jdk1.7.0_67\     set classpath=.;     for %%c in (lib\*.jar