导航:首页 > 程序命令 > shell命令行for

shell命令行for

发布时间:2023-02-13 05:31:41

① 编写一个shell程序,实现用for循环输出1到20间的奇数

#!/bin/sh

for ((i=1;i<20;i=i+2));

do

echo $i

done

类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

命令行式shell(Command Line Interface shell ,即CLI shell)

例如:

bash / sh / ksh / csh / zsh(Unix/linux 系统)



(1)shell命令行for扩展阅读:

传统意义上的shell指的是命令行式的shell,以后如果不特别注明,shell是指命令行式的shell。

文字操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理与操作系统之间的交互:等待输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。

shell提供了与操作系统之间通讯的方式。这种通讯可以以交互方式,或者以shell script方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。

② powershell命令行如何用forfiles命令调用gcc编译多个文件

forfiles不是Powershell的命令,可以用foreach对文件进行遍历,命令大概如下:

Get-ChildItem-PathF:
ew_folder|ForEach-Object{gcc-o$_.FullName}

注解:

  1. gcc的使用及参数我不知道,所以gcc -o $_.FullName只是一个示例。

  2. Powershell获取的都是对象,FullName属性表示该对象(文件)的完整路径。

  3. ForEach-Object可以用%代替,即上面的命令行可以写成

Get-ChildItem-PathF:
ew_folder|%{gcc-o$_.FullName}

如有问题请追问,一直交流。

③ shell命令行下的通配符*有什么用

shell下的通配符,一般来说主要是用来匹配文件用的
常用的有三个,或者应该只有三个吧,记得不是很清楚了
*,?,[]
其中*代表任意多个字符,如你cd
/后,这时,*就代表/目录下所有的文件了,echo
*你会看到结果,但不包括所有隐藏的文件,所有隐藏的文件是.*,这里的点号仅仅代表点号而已。当然,你想得到两个o连在一起的文件怎么做了?很简单,就是*oo*,你用echo命令,于是得到了root与boot……
?则是代表单个字符,如echo
???,文件名是三个字符长的都出来的。echo
?i?,于是bin与lib就出来了……
[]则是用来匹配方括号里的任意一个,比如[abc]就匹配a,b,或者c中的任意一个。结合*号,如echo
[abc]*,则是显示所有以a或b或c开头的文件。配合短横线的话,可以匹配一个范围。如要匹配以小写字母开头的文件怎么写了?你不要把所有的小写字母写出来,[a-z]*这样即可,大写字母当然就是[A-Z]了,数字就是[0-9]了,当然也可以合起来写[A-Za-z0-9],不用解释了吧。要记住的是,只是匹配一个而已。再来一个例子:for
i
in
*
;doecho
$i;done。答案嘛,自己试下就知道了。开个shell,随便练下,很容易掌握的。
啰嗦了这么多,希望对您有用。有一点需要注意,就是不要把通配符与正则元字符混淆了……

④ linux的命令行操作和shell的区别

shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。 shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能。
总括,shell是linux命令集的概称,是属于命令行的人机界面。
免费提供最新Linux技术教程书籍,入门自学书籍《linux就该这么学》,为开源技术爱好者努力做得更多更好

⑤ Linux shell 问题 求解

这是表示foo分别取值三次,并且分别打印出 三个值来,具体其他知识拓展如下:
for 命令
重复执行一系列命令在编程中很常见。通常你需要重复一组命令直至达到某个特定条件,比如处理某个目录下的所有文件、系统上的所有用户或是某个文本文件中的所有行。
bash shell提供了 for 命令,允许你创建一个遍历一系列值的循环。每次迭代都使用其中一个值来执行已定义好的一组命令。下面是bash shell中 for 命令的基本格式。
for var in list
do
commands
done
在 list 参数中,你需要提供迭代中要用到的一系列值。可以通过几种不同的方法指定列表中的值。
在每次迭代中,变量 var 会包含列表中的当前值。第一次迭代会使用列表中的第一个值,第二次迭代使用第二个值,以此类推,直到列表中的所有值都过一遍。在 do 和 done 语句之间输入的命令可以是一条或多条标准的bash shell命令。在这些命令中,$var 变量包含着这次迭代对应的当前列表项中的值。
也可以将 do 语句和 for 语句放在同一行,但必须用分号将其同列表中的值分开: for var in list; do 。
1.1.读取列表中的值
for 命令最基本的用法就是遍历 for 命令自身所定义的一系列值。
[ceshi@jerry jghml]$ cat test1.sh
#!/bin/bash
# basic for command
for test in Alabama Alaska Arizona Arknsas California Colorado
do
echo The next state is $test
done

⑥ 使用for语句创建命令行上所有整数之和的shell程序

你把sum=' expr $sum + $INT '中的单引号要换成反引号
如下:
sum=` expr $sum + $INT `
然后就行了
亲给好评哟!!!!

⑦ 如何利用shell脚本中的eval命令来构造&quot;智能&quot;命令

今天主要介绍一个shell脚本中比较少见的命令--eval

功能说明 :重新运算求出参数的内容。

语 法 :eval [参数]

补充说明 :eval可读取一连串的参数,然后再依参数本身的特性来执行。

参 数 :参数不限数目,彼此之间用分号分开。

eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。eval也可以用于回显简单变量,不一定是复杂变量。

eval的作用是再次执行命令行处理,也就是说,对一个命令行,执行两次命令行处理。这个命令要用好,就要费一定的功夫。下面用几个例子帮助大家理解下。

1、eval一个命令

eval echo相当于echo

2、两次扫描

该命令适用于依次扫描无法完成其功能的变量。

第一步:对eval后面的命令进行扫描,执行变量替换,普通命令保留

第二步:执行变量替换后的命令串

3、获得最后一个参数

4、用eval技巧实现shell的控制结构for

用eval技巧实现shell的控制结构for

输出结果:

注意:bash里有两个很特殊的变量,它们保存了参数列表。

这里我使用了函数递归以及eval实现了for结构。

当执行eval $@时,它经历了步骤如下:

第1步,分割成eval $@

第6步,扩展$@为hostname

第11步,找到内置命令eval

重复一次命令行处理,第11步,找到hostname命令,执行。

eval是对Bash Shell命令行处理规则的灵活应用,进而构造"智能"命令实现复杂的功能。上面提及的命令是eval其中一个很普通的应用,它重复了1次命令行参数传递过程,纯粹地执行命令的命令。其实它是bash的难点,是高级bash程序员的必修技能。

⑧ shell命令有哪些保留字

Bash Shell内建命令和保留字

命令

含义

!

保留字,逻辑非

:

不做任何事,只做参数展开

.

读取文件并在shell中执行它

alias

设置命令或命令行别名

bg

将作业置于后台运行

bind

将关键字序列与readline函数或宏捆绑

break

保留字,跳出for、while、until、select循环

builtin

调用命令的内建命令格式,而禁用同名的函数。或者同名的扩展命令

case

保留字,多重选择

cd

切换当前工作目录

command

找出内建和外部命令;寻找内建命令而非同名函数

continue

保留字,到达下次for、while、until、select循环

declare

声明变量定义变量属性

dirs

显示当前存储的列表

disown

将作业从列表中移除

do

保留字,for、while、until、select循环的一部分

done

保留字,for、while、until、select循环的一部分

echo

打印参数

elif

保留字,if结构的一部分

else

保留字,if结构的一部分

enable

开启和关闭内建命令

esac

保留字,case的一部分

eval

将参数作为命令再次处理一遍

exec

以特定程序取代shell或为shell改变I/O

exit

退出shell

export

将变量声明为环境变量

fc

与历史命令一起运行

fg

将作业置于后台运行

fi

保留字,if循环的一部分

for

保留字,for循环的一部分

function

定义一个函数

getops

处理命令行选项

hash

记录并指定命令的路径名

help

显示内建命令的帮助信息

history

显示历史信息

if

保留字,if循环的一部分

in

保留字,case、for、select循环的一部分

jobs

显示后台运行的作业

kill

向进程传送信号

let

使变量执行算术运算

local

定义局部变量

logout

从Shell中注销

popd

从目录栈中弹出目录

pushd

将目录压入栈

pwd

显示当前工作目录

read

从标准输入中读取一行

readonly

将变量定义为只读

return

从函数或脚本返回

select

保留字,生成菜单

set

设置Shell选项

shift

变换命令行参数

suspend

终止Shell的执行

test

评估条件表达式

then

保留字,if结构的一部分

time

保留字,输出统计出来的命令执行时间,其输出格式由TIMEFORMAT变量来控制

times

针对Shell及其子Shell,显示用户和系统CPU的时间和

trap

设置扑捉程序

type

确定命令的源

typeset

声明变量,定义变量属性,与declare等价

ulimit

设置和显示进程占用的资源限制

umask

设置和显示文件权限码

unalias

取消别名定义

unset

取消变量或函数定义

until

保留字,一种循环结构

wait

等待后台作业完成

while

保留字,一种循环结构

⑨ shell无法执行for循环多行命令

默认的情况下,Shell脚本中的命令是串行执行的,必须等到前一条命令执行完后才执行接下来的命令。shell循环中指令正常使用也是串行的,不过可以使用后台并行执行命令的方法实现并行操作;
例如:
(1)、串行实例:
#!/bin/bash
for(( i = 0; i < ${count}; i++ ))
do
echo commands1
done

(2)、并行实例:
#!/bin/bash
for(( i = 0; i < ${count}; i++ ))
do
{
echo commands1
}&
done
实质就是将操作指令作为后台进程在执行,这样主进程就不用等待前面的命令执行完毕之后才开始执行接下来的命令,实现并行的效果;自己领会咯。

阅读全文

与shell命令行for相关的资料

热点内容
ssm身份认证源码 浏览:462
预排序遍历树算法 浏览:669
加密装置如何打开ping功能 浏览:478
python下载372 浏览:901
u盘子文件夹隐藏 浏览:296
本地误删svn文件夹 浏览:685
海康威视python通道名 浏览:241
如何用app覆盖全部曲库 浏览:602
变异布林源码 浏览:686
表格加密设置打印区域 浏览:437
卡耐基pdf下载 浏览:924
现在最流行的单片机 浏览:88
机顶盒刷机源码 浏览:985
编码pdf下载 浏览:946
隔壁同学app怎么 浏览:301
c语言宏命令 浏览:542
php卡死源码 浏览:576
time库中的clock函数python 浏览:991
cad视觉移动命令怎么打开 浏览:821
安卓java调用python 浏览:398