首页 > 系统相关 >shell

shell

时间:2023-05-14 20:45:23浏览次数:39  
标签:文件 shell 变量 sh test name

运行shell脚本

手动在环境中开启指定解释器:sh test.sh

直接在当前环境中运行的shell中运行脚本:. test.sh

直接在当前环境中运行的shell中运行脚本:source test.sh

执行权限

在这一部分由于我们假设脚本文件有可执行器权限,所以我们使用chmod +x test.sh为我们的test.sh文件增加了可执行权限。

我们知道当一个文件具有可执行权限时我们可以使用该文件的路径名直接运行该文件,有两种方式可以运行脚本:

1.绝对路径名运行脚本文件

绝对路径就是从根目录下开始记录文件路径名,是文件在计算机上真正存在的路径。(如果不知道你的文件路径名,可以在当前位置的shell中使用pwd查询当前所在位置)

2../相对路径名的格式运行脚本文件

相对路径是指以当前的文件作为起点,相较于当前目录的位置而被指向并且加以引用的文件资源。

比如我们知道test.sh文件的绝对路径为/home/westos/Desktop/textcpp/test.sh,那么当我们在testcpp文件夹中时,test.sh文件的相对路径为test.sh

又因为.代表当前所在位置,故而为其实./test.sh其实就是该文件的绝对路径,只是表示的方式不同。

变量操作

  1. 创建普通变量:name=“test”,组要注意的是等号两边不能有空格。
  2. 创建局部变量:local name=“test”,使用local修饰的变量在函数体外无法访问,只能在函数体中使用。
  3. 创建只读变量:name=“only_read” -> readonly name,这种变量不可以被修改。
  4. 使用变量:echo $name或者echo ${name}
  5. 删除变量:unset name,删除之后的变量无法被访问,需要注意无法删除只读变量。

shell中三种类型变量

  • 局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  • 环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  • shell变量:shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

创建变量

    1. 使用单引号创建:var='test'。
      这种方式创建的变量只能原样输出,变量无效,我们可以借用c中的“字符串常量”的定义理解这种特性。除此以外,单引号中不能出现单独的单引号,转义也是不可以的。
    2. 使用双引号创建:var="my name is ${name}",这种方式创建的字符串变量有效,也可以出现转义符

 

使用for(或while循环)循环遍历数组元素:

1 2 3 4 5 6 #!/bin/bash a=(1 2 3 4 5 6) for((i=0; i<10; i++)) do     echo "a[$i]=${a[$i]}" done

除此以外我们还可以使用${a[*]}或者${a[@]}来遍历数组元素,具体代码如下:

1 2 3 4 #!/bin/bash a=(1 2 3 4 5 6) echo ${a[*]} echo ${a[@]}

 

标签:文件,shell,变量,sh,test,name
From: https://www.cnblogs.com/sunyang13763857269/p/17400135.html

相关文章

  • PowerShell-get-counter-算机上找不到任何性能计数器集: 错误 800007d0
    #已经解决了,感谢国外大神的解答:https://techcommunity.microsoft.com/t5/windows-powershell/get-counter-could-not-find-any-performance-counter-sets-on-the/m-p/3811330/thread-id/6430#M6433 获取计数器:在192.168.50.101计算机上找不到任何性能计数器集:错误80000 ......
  • shell 基础篇之运算符
    Shell基本运算符Shell和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr,expr最常用。expr是一款表达式计算工具,使用它能完成表达式的求值操作。#!/b......
  • shell中任务递交后修改循环配置文件效果
     001、投递该任务(base)[b20223040323@admin1test]$lsa.txtrecord.sh(base)[b20223040323@admin1test]$cata.txt##循环配置文件110000000002500000000(base)[b20223040323@admin1test]$catrecord.sh##测试程序#!/bin/bashcata.......
  • Python 执行 Shell命令
    方法一:os.system() os.system()可以说是最为基本的运行shell命令的方式了,这个方法的特点就是直接运行命令,并将运行之后的状态值返回码返回,所以结果是一个int类型,这个方式比较常见是运用在只需要执行shell命令而不需要得到命令的返回结果的场景。比如执行一个创建目录的......
  • 关于Xshell安装出现功能传输错误问题
    Xshell安装时出现致命错误,有关详细信息,请参阅windowsinstallerhelp或者MSDN解决方法:1、在命令行窗口输入regedit打开注册表编辑器2、找到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control3、将RegistrySizeLimit(REG_SZ类型的)的值改为FFFFFFFF(10进制就是4294967295......
  • Shell进阶
    19Linux-Shell编程19.1正则表达式19.1.1概述在上一章说过正则表达式和通配符的区别(正则表达式用来在文件中匹配符合条件的字符串,通配符用来匹配符合条件的文件名)吗?其实这种区别只在Shell当中适用,因为用来在文件当中搜索字符串的命令,如grep、awk、sed等命令可以支持正则表达......
  • MFC-ShellExecuteEx打开文件
     打开执行程序SHELLEXECUTEINFOShellInfo;/*typedefstruct_SHELLEXECUTEINFO{DWORDcbSize;存储该结构的长度,以字节为单位ULONGfMask;一个标志数组,用来设置其他成员的有效性SEE_MA......
  • Linux重启Java的.sh脚本shell
    原文链接:https://blog.csdn.net/weixin_44821965/article/details/130039771前言最近看到了项目中重启Java服务的.sh文件,对sh文件里面的命令产生了好奇,于是研究了一下脚本里面每一个命令的具体意义一、.sh文件内容.sh文件里面的内容如下:ps-ef|grepplugins-web|grep-vgre......
  • Zookeeper中Shell客户端-crud操作
    1.读取节点ls命令:列出zookeeper指定节点下的所有子节点,只能查看指定节点下的第一级的所有子节点;get命令:可以获取zookeeper指定节点的数据内容和属性信息。lspath[watch]getpath[watch]ls2path[watch]2.更新节点setpathdata[version]data就是更新的新内容,version......
  • zookeeper中shell客户端设置watcher
    1.shell客户端设置watcher1.1创建节点监听:createpathwatch1.2设置节点变动监听:getpathwatch1.3通过另一个客户端更改节点数据:setpathwatch1.4此时设置监听的节点收到通知关注我的公众号SpaceObj领取idea系列激活码......