首页
学习
活动
专区
圈层
工具
发布

Linux: Shell脚本中处理文件路径参数,兼容相对路径与绝对路径

在编写Shell脚本时,处理文件路径参数是一个常见的需求。路径参数可能是相对路径或绝对路径,如何编写一个兼容两者的Shell脚本并进行路径检查,是本文的主要内容。...一、问题背景与需求 在处理文件路径时,我们需要: 兼容相对路径和绝对路径的输入。 检查路径是否有效,即路径所指向的文件或目录是否存在。...路径检查:检查路径是否存在,并确认其是文件还是目录。 三、具体实现 以下是一个Shell脚本的示例,实现了上述功能: sh #!.../bin/bash # 获取输入参数 input_path="$1" # 判断输入是否为空 if [ -z "$input_path" ]; then echo "Error: No path...:通过$1获取用户传入的路径参数。

3.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用Spring Boot、Multipartfile上传文件路径错误问题

    方法报错 File file = new File("/tmp/files/"); try { multipartFile.transferTo(file); ... } 问题分析 源码中文件定义的是相对路径...,预期路径应该是项目路径/tmp/source/,但是报错确是一个系统临时文件路径(tomcat的)。.../tmp/files/,而transferTo方法预期写入的文件路径为/tmp/tomcat/…/tmp/files/xxx.jpg,我们并没有创建该目录,因此会抛出异常。...问题解决方案 1 使用绝对路径 2 修改location的值 这个location可以理解为临时文件目录,我们可以通过配置location的值,使其指向我们的项目路径,这样就解决了我们遇到的问题。...在Spring Boot下配置location,可以在main()方法所在文件中添加如下代码: @Bean MultipartConfigElement multipartConfigElement(

    12.7K30

    Shell编程中关于数组作为参数传递给函数的若干问题解读

    最近在学习《Linux命令行和shell脚本编程大全》(第四版)这本书,对于自己遇到的问题以及通过搜索引擎和书籍中的解决方案进行一个案例的剖析,希望对于像我这样的初学者,有一个帮助。...3、 数组作为参数传递给函数的若干问题说明以下通过例子来说明传参数组遇到的问题以及原因:第一、关于$1 的问题[root@iZuf6gxtsgxni1r88kx9rtZ linux_cmd]# cat...第二、关于$@的问题$@表示获取脚本的所有参数,而以下的例子:[root@iZuf6gxtsgxni1r88kx9rtZ linux_cmd]# cat fun_array.sh #!...,而这里由于只向函数传递了1个参数并且该参数是数组,因此在这种特定情况下也可以取传递的数组参数。...pro_arr $arg2对函数传参数字符串形式:[root@iZuf6gxtsgxni1r88kx9rtZ linux_cmd]# cat fun_array.sh #!

    3.9K10

    pytest + yaml 框架 -33.参数化读取文件路径优化

    前言 针对小伙伴提出参数化时读取外部文件,在项目根路径运行没问题,但是进入到项目下子文件夹运行用例,就会找不到文件问题做了优化。...关于参数化读取外部文件相关内容参考前面这篇pytest + yaml 框架 -25.参数化数据支持读取外部文件txt/csv/json/yaml 安装以下版本优化上诉问题 pip install pytest-yaml-yoyo...False) 原因是以当前运行的目录为节点,根据相对路径是拼接文件路径, D:\demo\yoyo_yaml\cases 拼接 ‘data/xx.csv’ 所以会找不到文件路径。...路径查找优化 新版本对文件路径做了优化: 1.先根据当前运行的文件目录为节点,拼接文件路径,如果路径不存在看下一条2 2.以项目根路径为节点,拼接文件路径 总体来说就是双保险,如果第一种找不到,就按第二种...,两种都找不到就报错:文件路径不存在 新版本D:\demo\yoyo_yaml\cases目录运行日志如下: 2023-06-07 23:08:07 [INFO]: parameters 参数化执行用例

    74020

    spring boot读取配置文件——获取配置参数

    一、背景 工作中经常会有一些参数需要配置,同时在代码里面需要用到,所有就需要配置类读取,然后在使用的时候注入该类进行获取相关参数。...前面实现了spring boot相关的下面内容,现在就来实现一下spring boot如何读取配置文件里面的参数。参考项目地址在文末。...、在项目resources里面新建一个properties文件,保存需要用到的参数 com.name=jiankang com.phone=18438595560 com.language=java...2、在启动类所在目录新建一个config文件夹,并新建ResourceConfig类,如下。...(1)配置类需要加@Configuration注解,声明是配置类 (2)@PropertySource注解设置properities文件所在路径 (3)变量上面的@Value注解设置对应的属性变量,冒号左边是映射的属性文件中的键

    1.5K10

    作为一个前端工程师也要掌握的几种文件路径知识

    路径知识总结: __dirname:获得当前执行文件所在目录的完整目录名 __filename:获得当前执行文件的带有完整绝对路径的文件名 process.cwd():获得当前执行node命令时候的文件夹目录名...api进行讲解,我经常用到的,或者作为一个前端开发工程师在webpack等工程配置的时候经常用到的。...作用总结 path.join([...paths]) 传入的参数是字符串的路径片段,可以是一个,也可以是多个 返回的是一个拼接好的路径,但是根据平台的不同,他会对路径进行不同的规范化,举个例子,Unix...node核心API path 作用总结 basename接收两个参数,第一个是path,第二个是ext(可选参数),当输入第二个参数的时候,打印结果不出现后缀名 path.dirname 举例说明 const.../c')); 输出结果 /bar/c 作用总结 path.resolve([...paths]) path.resolve就相当于是shell下面的cd操作,从左到右运行一遍cd path命令,最终获取的绝对路径

    92310

    Spring MVC && 后端参数映射 && 传递json对象数据 && 获取URL中的参数 && 文件上传 && 会话管理 && 报头操作

    请求 一、路由映射 @RequestMapping @RequestMapping 既可修饰类,也可以修饰方法,当修饰类和方法时,访问的地址是 类路径 + 方法路径。...三、注意事项 访问不同的路径,就是发送不同的请求。...如果只指定了 URL 路径而没有别的参数的话,则可以忽略属性 value,反之则必须加上! 当有多个参数时,前后端进行参数匹配时,是以参数的名称进行匹配的,因此参数的位置是不影响后端获取参数的结果。...,表示上传的一个文件对象,它封装了文件上传时的所有关键信息,比如文件名、内容、文件大小、MIME 类型等。...// 将文件上传到指定路径 file.transferTo(new File("E:/杂物文档/" + file.getOriginalFilename())); return

    36510

    原理分析 | Controller —— SpringBoot 内存马

    路径参数 /user/123 // @PathVariable — 路径里用 {} 占位,方法参数用 @PathVariable 接收,Spring 自动解析 @GetMapping("/user...// 支持:GET 和 POST .build();类比 Tomcat:相当于 addServletMappingDecoded("/shell", "evilServlet") 里的路径参数。...Spring MVC 参数自动注入机制EvilController 里的 shell 方法为什么需要 request 和 response 这两个参数?...方法对象,参数是方法名和参数类型列表 // 告诉 Spring 注册的是 shell 这个方法,参数是 request 和 response Method method =...JSP 的路由机制和 Controller 不一样,路径就是文件在 webapp/ 下的相对路径,文件名即路由,Tomcat 直接按文件路径映射,不需要任何控制器定义。

    37410

    shell编程05【自定义函数和高级命令】

    + echo 5,0 5,0 高级命令 序号 命令 说明 1 cut 从一个文本文件或者文本流中提取文本列 2 sort 对 File 参数指定的文件中的行排序 3 uniq 可以去除排序过的文件中的重复行...参数 说明 -b: 忽略每行前面开始出的空格字符; -c: 检查文件是否已经按照顺序排序; -d: 排序时,处理英文字母、数字及空格字符外,忽略其他的字符; -f: 排序时,将小写字母视为大写字母;...shell shell spring springmvc mybatis hello ajax 排序并去重 cat a.txt | sort | uniq [root@hadoop-node01 ~]...# cat a.txt | sort | uniq ajax hello java mybatis name php shell spring springmvc 统计各行在文件中出现的次数: sort...| uniq -d hello java shell spring wc   wc命令用来计算数字。

    1.8K40

    自定义Spring Shell

    目录 概述 自定义内置命令 禁用内置命令 覆盖内置命令 自定义命令提示符 自定义命令行选项行为 自定义参数转换器 概述 官网:https://projects.spring.io/spring-shell...自定义内置命令 禁用内置命令 禁用Spring Shell的内置命令非常简单,只需要在pom.xml文件中进行简单配置即可,如下所示: 参数中读取指定文件中的命令并执行,具体来讲:将多个命令写在文件中,并通过参数的形式将包含了批量命令的文件路径传递给程序,...传递的文件路径参数必须以“@”开始,如下示例: $ java -jar /home/test/sun/workspace/test-springshell/target/test-springshell...自定义参数转换器 默认情况下,Spring Shell使用标准的Spring类型转换机制将命令行的文本参数转换为指定的类型。

    1.3K20

    SpringBoot之部署以及Maven打包切换环境

    、 方式一:通过shell命令启动 关闭 1.1 后台运行 BUILD_ID=dontKillMe nohup java -jar 文件名.jar --spring.profiles.active=prod...start|stop|restart来对应用进行启停等管理了 sudo service app start|stop 命令将得到形如 Started|Stopped [PID] 的结果反馈 默认PID文件路径...:/var/run/appname/appname.pid默认日志文件路径:/var/log/appname.log 这可能是我们更熟悉也更常用的管理方式。...自定义参数 在这种方式下,我们还可以使用自定义的.conf文件来变更默认配置,方法如下: 在jar包相同路径下创建一个.conf文件,名称应该与.jar的名称相同,如appname.conf 在其中配置相关变量...如下一些操作可以作为部分基础设置参考: 为服务创建一个独立的用户,同时最好将该用户的shell绑定为/usr/sbin/nologin 赋予最小范围权限: chmod 500 app.jar 阻止修改

    1.5K20
    领券