编写一个bash脚本程序,用for循环实现将当前目录所有的·c文件移到指定的目录

编写一个bash脚本程序,用for循环实现将当前目录所有的·c文件移到指定的目录,第1张

#!/bin/bash

for i in `ls *.c`

do

cp $i /path

done

顺便提一下,直接用

cp *.c /path/ 一样可以把.c文件拷到指定目录,for循环并不是必要的

脚本自己写了一个,可能不完全符合条件2要求(cmd变量没用上),但是逆序打印词串大概没问题,你自己试下:

#!/bin/bash

count=$#

for arg in $*

do

echo -n "${count} "

let "count=count-1"

done

第一个问题的答案:vi,或者你写vim也对,一般vi是vim的链接,运行命令行下的vi编辑器。

第二个问题没看明白要cmd这个变量啥用,可能是我愚钝,我不知道怎样重定向一个字符串追加到一个变量的末尾,想了个变通的方法。

第三个问题的答案:chmod 0750 /<到脚本位置的绝对路径>/<脚本文件名>

第四个问题的答案:你把这串字符按照空格隔开为一个单元的规律倒序写即可,就是这样ddff gdd ddd ac ab aa

bash脚本里的循环写法其实也就三种,分别是 for , while 和 until

对于某些需要重复执行的命令来说,其仅仅是一些参数有着区别,其他的命令大体是相同的,比如有一只摸鱼怪跳了出来并表示自己是一条鱼,然后这只摸鱼怪被抓到了锅里做成了水煮鱼

好的,现在我们有水煮鱼吃了,但是好巧不巧又跳出来十只摸鱼怪,每个人都表示自己是一条鱼,现在家(bash)里出现了十条鱼

难道我们需要手动运行上面的echo十次,一只一只把鱼抓回来么,当然不用。

for命令允许我们创建一个遍历一系列值的循环。每次循环都使用其中一个值来执行已经定义好的一组命令。命令格式如下:

每次循环会顺序地从list中取出一个值赋给 var , var 可以以 $var 的形式取其中的值,遍历完 list 中的所有元素后跳出for循环

循环体则是do和done之间地部分,可以填入各种标准shell语句,当然也可以填入另一个循环。

list 的形式则有如下两种,一种使用大括号扩起,或者使用空格分隔

好巧不巧输入的数据中含有空格时,可以将带空格的数据使用 " 扩起

另外 list位置也可以填入一条输出命令的语句,即

有点像管道,commands给出一个列表并被循环使用

如果是数字的话,还可以考虑如下写法

上面的式子代表 [digit1,digit2] 中的每一个整数

那么抓摸鱼怪就很方便了

文件中的内容如下:

im fish 1

im fish 2

im fish 3

im fish 4

im fish 5

im fish 6

im fish 7

im fish 8

im fish 9

bash中有一种循环方式具有类似C的循环风格(之前"普通"的循环则更类似于迭代器)

基本就是c中那味,当然,既然是c中内味就说明其实还能多写点东西,比如多写两个变量

但是条件还是只能定义一种条件

test command 和bash中 if-else 定义的 test command 是完全一样的,也可以使用任何普通的bash命令,只要状态码不发生变换,循环就会被一直执行下去。而且test command其实可以写多行,只有最后一个测试命令会拿来决定是否退出循环,最后一个命令之前的测试命令都会被忠实地执行。

基本和while一样,连循环体都长得一样


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11453155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存