Bash编程-第2部分

第二部分 这个 迷你教程 在编程 ,我们在哪里学习使用 周期 和其他有助于我们改善功能的工具 脚本.

如果有条件

If的功能是应用过滤器,并对所应用的每种类型的过滤器执行操作或任务。 其结构如下:

如果[条件]; 然后使用elif命令[condition]; 然后是其他命令; fi命令

在For循环旁边的相应部分中显示了一个示例。

周期

1. While:只要条件为真,它将执行do和done之间指定的所有命令。 如果要向其传递比较运算符,则表达式必须放在方括号中。

当条件/命令执行命令时

示例:数字乘法表

#!/ bin / bash X = 1 echo“输入数字并按ENTER”读取M#循环控制X小于或等于10,而[$ X –le 10]则执行#在R中,我们存储X by MR = $ [X * M]#此乘法被打印在屏幕回显“ $ M * $ X = $ R”#通过let,我们将X的值增加1个单位,让X = $ X + 1完成

2. 对于:将元素列表存储在变量中,该变量将用于在每个循环中执行某些操作。

对于ELEMENTS中的VARIABLE,请执行命令

示例:将文件从一个文件夹复制到另一个文件夹,替换旧文件的程序。

#/ bin / bash#我们建立源目录和目标目录ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents#我们将自己放在源cd $ ORIGIN#在所有文件中,我们只想要一个是#在* do ARCH-DESTINATION =“ $ DESTINATION / $ FILE”中为FILE调用FILE#-f过滤我们的常规文件,因为目录对我们没有好处。 –如果[-f $ FILE] && [$ FILE -nt $ ARCH-DESTINATION],则-Nt过滤出#个比目标文件夹中的文件“新”的文件; 然后回显“正在复制$ FILE ...”#我们用cp复制文件cp $ FILE $ ARCH-DESTINATION fi完成#我们cd退出源文件夹cd

另一个示例:脚本,用户必须猜测计算机生成的随机数。

#/ bin / bash#从1到10生成一个随机数,将其保存在RANDOM RANDOM = $ [$ RANDOM%10 + 1]中,而[1]会回显–n“输入数字:”读取NUM#比较用户选择的数字是否等于RANDOM; 如果[[$ NUM –eq“ $ RANDOM”],请记住使用$来评估变量的#value而不是变量名; 然后回声“你说对了!” #break允许在中断时结束循环#如果数字小于RANDOM elif [“ $ NUM –gt“ $ RANDOM”]; 然后回声“它是更少的”“否则,它大于RANDOM否则回声”是“更大的”

3. 直到:结构上与While十分相似,除了代码始终在条件评估为负的情况下执行,也就是说,程序将继续执行“直到条件发生”

直到CONDITION / COMMAND做完命令

示例:按降序打印数字10-20

#!/ bin / bash CONT = 20#只要计数器小于10(-lt,“低于#than”),代码就会执行到[$ CONT -lt 10]; 做回显“ COUNTER $ CONT” #A CONT减去一个单位,让CONT- = 1完成

4. 选择:这最后一个周期是一个特例,因为它通常用于快速创建菜单。 它的工作类似于For循环。

在已完成的命令列表中选择VARIABLE

示例:使用户能够继续或结束脚本。

#!/ bin / bash #item是一个变量,它响应#user选择的内容,Continue和Finish是可供他使用的#options,尽管可以添加其他选项#Continue Finish中的更多选择项do#如果用户选择结束程序,然后中断我们退出循环。 如果[$ item =“ Finish”]; 然后打破fi完成
谢谢Juan Carlos Ortiz!

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   中难度

    我认为是这样的:tar -cf-目录| (cd /其他/目录; tar -xvf-)

    然后它看起来像/另一个/目录/目录
    这样,我压缩了目录,然后将其解压缩到另一个位置…。

  2.   米格尔·安赫尔

    您好,很好的tuto,我正在学习这个主题,一切都很好,只是我还没有制定一个可以帮助我的程序,看看您是否可以帮助我。

    我需要执行一个循环,在该循环中它将接收源文件的列表作为参数,该列表仅带有名称(不带扩展名),以便循环执行以下操作,查找在目录中收到的所述名称(即,我们将寻找一个),提取并复制文件(全名已经带有扩展名)和绝对路径,然后在另一个目标文件中创建它。

    到目前为止,我有以下内容:

    边读边
    do
    echo -e“ $ line”
    查找/ home / myuser / dof“ $ line” -exec readlink -f {};
    done <testlist.txt到目前为止,我已经阅读了文件,它包含了每一行,但是我不能让它查找该文件并提取信息,如果可以的话,谢谢。 干杯

  3.   帕梅拉·加拉维兹(Pamela galaviz)

    非常感谢您的贡献🙂

  4.   马里奥·哈维尔(Mario Javier)

    嗨...希望您能在下一个实践中有所帮助...除了在tgz中解压缩指定目录中的文件外,还为所有现有目录和文件指定用户和组,并为文件和目录分配权限
    注意:准备读取和写入的文件
    目录执行权限

  5.   Juank

    ARCH-DESTINATION是一个变量,我们要在其中保存目标文件的路径,以备不时之需。 然后,向该变量指示变量DESTINATION,该变量在上方包含Documents文件夹的路径,并添加“变量” FILE,该文件包含文件名。 例如,如果该文件是list.doc,则变量ARCH-DESTINATION将等于/home/Usuario/Documentos/listado.doc

  6.   让我们使用Linux

    这是上一篇文章。 您可以在以下位置访问它 http://usemoslinux.blogspot.com

    拥抱! 保罗

  7.   坦率

    早上好,老兄,谢谢,您的博客非常好,但是我无法获得《 Bash编程》的第一部分,谢谢,问候。

  8.   齐藤莫德拉格

    衷心的祝贺,这是两个非同寻常的部分。

    简直太棒了。

  9.   布希女士

  10.   雨果

    您好,我正在用CASE编写程序,我想要它做什么,但我不知道该怎么做,例如:

    echo选择一个选项:
    回音
    回声1.选项1
    回声2.选项2
    回声3.选项3
    回声4.选项4
    回声5.退出
    读变
    案例“ $ var”在
    1)
    回显“您选择了选项1”
    ;;
    2)
    回显“您选择了选项2”
    ;;
    3)
    扔出去 ”…..”
    ;;
    4)
    扔出去 ”…。”
    ;;
    5)
    扔出去 ”…”

    ;;
    *)
    回显“错误的选项”
    ;;
    ESAC

    好的,我不知道该怎么做,当我选择要退出的选项4时,问我是否真的要退出,并给我2个选项Y和N

    另一种是,当您选择数字1..5以外的内容时,请勿从脚本中投票给我...。

    你能帮我谢谢吗。

  11.   达帕玛21

    嗨,我1个月前开始编写脚本,感谢您的脚本发布。 我将做大约15-20。 提前非常感谢您。 但是现在我们的老师给了我们一项工作,使我变得停滞不前。 由于老师问:
    传递目录,按字母顺序复制该目录中的所有文件,并将其命名为file1 file2等...等等...
    现在我处于查找或定位的时刻,我想使用查找,但是当给它一个错误代码时,例如我将其通过dev null放置时,权限被拒绝,然后我弄错了,然后将定位放在这里:
    找到$ 1 | grep“ / $ {1} \ $”
    但是当然,他们全都出来了...
    如果您阅读它,非常感谢。
    如果您能帮助我,那将是一个很大的帮助。

  12.   路易斯

    我想请你帮我。
    1.-用键盘输入一个整数,然后显示两次并在屏幕上显示该数字的三倍。 2.-编写一个程序来确定键盘输入的数字是否可以被3整除。
    3.-编写一个程序来查找以下各项的总和:???????? + ???????? + ???????? + ???????? +⋯? ???????
    4.-编写一个程序,求和1 + 3 + 5 + 7 + 9··+(2n + 1)。
    5.-制作一个程序,在屏幕上打印“ Linux”一词十次
    6.-使程序在用户指​​定的次数上在屏幕上打印单词Linux。
    7.-输入以小时为单位的金额,并将其转换为分钟和秒。
    8.-计算一个三角形的面积
    9.-在键盘上输入数字,然后如果输入2,则应平方,3立方,4到第四,以此类推,直到6。
    10-计算学生必须支付的退休金,必须输入专业代码以及欠款天数:

    专业
    蒙托
    每天持续时间
    1
    电脑运算
    160
    1
    2
    护理
    150
    1.5
    3
    秘书处
    140
    2
    4
    旅游
    180
    2.5
    5
    会计
    160
    1
    您必须显示您正在学习的专业,退休金的费用,默认值和要支付的总金额。

  13.   查理

    您好,有人可以帮我吗?
    我需要«通过键盘请求三个单词并按字母顺序从A到z显示它们»
    LINUX porfaborrrr的Bash或sh语言