iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >shell for循环、循环变量值付给其他shell脚本的方法
  • 191
分享到

shell for循环、循环变量值付给其他shell脚本的方法

shellfor循环变量 2022-06-04 22:06:38 191人浏览 八月长安
摘要

本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数。 shell for 循环: #!第一种写法 类似C、java for ((i=1; i<=100; i ++)) do

本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数。

shell for 循环:


#!第一种写法 类似C、java
for ((i=1; i<=100; i ++))
do
  echo $i  
done
#!第二种写法 in应用
for i in {1..100} 
do 
  echo $i 
done 
#!第三种写法 seq 使用
for i in `seq 1 100` 
do 
  echo $i 
done 

将循环变量赋值到下一个脚本:

在运行shell脚本时候,有三种方式来调用外部的脚本,exec(exec script.sh)、source(source script.sh)、fork(./script.sh)

1、exec(exec /home/script.sh):

使用exec来调用脚本,被执行的脚本会继承当前shell的环境变量。但事实上exec产生了新的进程,他会把主shell的进程资源占用并替换脚本内容,继承了原主shell的PID号,即原主shell剩下的内容不会执行。

2、source(source /home/script.sh)

使用source或者“.”来调用外部脚本,不会产生新的进程,继承当前shell环境变量,而且被调用的脚本运行结束后,它拥有的环境变量和声明变量会被当前shell保留,类似将调用脚本的内容复制过来直接执行。执行完毕后原主shell继续运行。

3、fork(/home/script.sh)

直接运行脚本,会以当前shell为父进程,产生新的进程,并且继承主脚本的环境变量和声明变量。执行完毕后,主脚本不会保留其环境变量和声明变量。


#!main.sh主体
#!/bin/sh
a=main

echo "a is $a"
echo "PID for parent before 2.sh:$$"
case $1 in
 exec)
  echo "using exec"
  exec ./2.sh ;;
 *)
  echo "using sourcing"
  source ./2.sh ;;
esac

echo "PID FOR parent after 2.sh :$$"

echo "now m"

#!2.sh
#!/bin/sh
echo "PID FOR 2.SH:$$"

echo "2.sh get a from main.sh is $a"

a=2.sh
export a
b=3.sh

echo "now 2.sh a is $a"

执行结果:


a is main
PID for parent before 2.sh:1162
using sourcing
PID FOR 2.SH:1162
2.sh get a from main.sh is main`这里写代码片`
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1162
now m

通过for循环,循环变量作为2.sh变量赋值并执行。


#!main主函数
#!/bin/sh
a=0
for ((i=1; i<=10; i ++))
do
    a=$i
    echo "a is $a"
    echo "PID for parent before 2.sh:$$" 
        echo "using sourcing"
        source ./2.sh
     echo "PID FOR parent after 2.sh :$$"
    echo "now a is $a" 
done

输出结果:


a is 1
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 1
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 2
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 2
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 3
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 3
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 4
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 4
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 5
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 5
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 6
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 6
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 7
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 7
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 8
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 8
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 9
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 9
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh
a is 10
PID for parent before 2.sh:1339
using sourcing
PID FOR 2.SH:1339
2.sh get a from main.sh is 10
now 2.sh a is 2.sh
PID FOR parent after 2.sh :1339
now a is 2.sh

以上这篇shell for循环、循环变量值付给其他shell脚本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

--结束END--

本文标题: shell for循环、循环变量值付给其他shell脚本的方法

本文链接: https://www.lsjlt.com/news/19652.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell如何实现for循环、循环变量值付给其他shell脚本
    小编给大家分享一下shell如何实现for循环、循环变量值付给其他shell脚本,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数。shell...
    99+
    2023-06-09
  • Shell脚本应用 – for、while循环语句
    通过Shell脚本应用(二)学习到了if条件条件语句的使用方法等。Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂、强大的功能。我们今天就来认识for、while、case语句的具体应用。一...
    99+
    2023-06-05
  • shell之for循环的3个简单脚本
    (1)打印乘法口诀表#!/bin/sh for i in {1..9} #取1-9的数字 do  for n in {1..9} #取1-9的数字  do  [ $i -ge $n ] && echo -n "${i}x${...
    99+
    2023-01-31
    脚本 简单 shell
  • for循环如何在shell脚本中使用
    这期内容当中小编将会给大家带来有关for循环如何在shell脚本中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。for 命令:for i in 的各种用法 :for i in “file1” “fil...
    99+
    2023-06-09
  • 如何使用Shell脚本for循环语句
    本篇内容主要讲解“如何使用Shell脚本for循环语句”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Shell脚本for循环语句”吧!与其他编程语言类似,Shell支持for循环。for...
    99+
    2023-06-09
  • Shell中的for循环的用法
    本篇内容主要讲解“Shell中的for循环的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell中的for循环的用法”吧!代码如下:for((i=1;i<=10;i++));do ...
    99+
    2023-06-09
  • Shell脚本中for循环、while循环及case分支语句怎么用
    本篇内容主要讲解“Shell脚本中for循环、while循环及case分支语句怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell脚本中for循环、while循环及case分支语句怎么...
    99+
    2023-06-28
  • 有哪些Shell脚本之无限循环的方法
    本篇内容主要讲解“有哪些Shell脚本之无限循环的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些Shell脚本之无限循环的方法”吧!for 实现:代码如下:#!/bin/bashset...
    99+
    2023-06-09
  • Shell中的for和while循环的用法
    本篇内容主要讲解“Shell中的for和while循环的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell中的for和while循环的用法”吧!一、for循环1.数字段形式代码如下:f...
    99+
    2023-06-09
  • 如何编写一个shell for循环与case结合的脚本
    这篇文章主要讲解了“如何编写一个shell for循环与case结合的脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写一个shell for循环与case结合的脚本”吧!核心代码:...
    99+
    2023-06-09
  • 怎么在Shell脚本中使用for循环遍历参数
    这篇文章将为大家详细讲解有关怎么在Shell脚本中使用for循环遍历参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.当一个脚本需要传入的参数较多时,可以使用for循环进行参数遍历示例:...
    99+
    2023-06-09
  • shell中的for循环用法是怎样的
    shell中的for循环用法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家...
    99+
    2023-06-28
  • 如何使用shell脚本循环处理文本的问题
    这篇文章主要介绍如何使用shell脚本循环处理文本的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!公司是使用puppet来进行配置管理, 某天修改完puppet后领导回复:我们有一个文档cabinet.txt记录...
    99+
    2023-06-15
  • shell循环中变量作用域的示例分析
    小编给大家分享一下shell循环中变量作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近实现了一个shell脚本,功能简单来说就是从文件中按行读取...
    99+
    2023-06-09
  • Linux Shell脚本使用函数添加环境变量的方法
    这篇文章主要讲解了“Linux Shell脚本使用函数添加环境变量的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux Shell脚本使用函数添加环境变量的方法”吧!一、简介环境变...
    99+
    2023-06-09
  • shell退出当前循环的方法是什么
    在 shell 中,退出当前循环的方法可以使用关键字 `break`。当执行到 `break` 时,循环会立即终止,并跳出循环的代码...
    99+
    2023-09-14
    shell
  • shell循环删除文件的方法是什么
    在Shell中,可以使用循环结构来删除文件。常用的循环结构有for循环和while循环。1. 使用for循环删除文件:```bash...
    99+
    2023-08-14
    shell
  • Linux下shell脚本字符串变量拼接与赋值的方法
    本篇内容介绍了“Linux下shell脚本字符串变量拼接与赋值的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.字符串拼接shell脚...
    99+
    2023-06-28
  • 怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文件
    本篇内容主要讲解“怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文...
    99+
    2023-06-09
  • shell脚本引用外部变量的两种方法
    本地变量只能在当前bash进程中有效,对当前shell之外的其它进程,包括子进程均无效。而启动脚本实际就是开启一个子进程执行命令,所以,在脚本里就无法引用父进程上的本地变量。如下, 引用外部变量失败: [root@Cen...
    99+
    2023-05-06
    shell 引用外部变量 Shell 外部变量引用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作