栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Linux shell 获取脚本文件后面的参数的方法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux shell 获取脚本文件后面的参数的方法

环境
  • Linux 主机:Ubuntu 20.04.4 LTS
获取shell脚本参数
  • Linux shell 可以通过 $0 $1 $2 等获取 shell 脚本本身 及后面的参数
获取路径
  • 错误示例:
#!/bin/bash
echo "-- create Linux rootfs begin --"
echo '$1'
rootfs_path = $1
echo $rootfs_path
#rm -rf rootfs_path
mkdir $rootfs_path
cd $rootfs_path
  • 运行效果
# ./rootfs_create.sh aa
-- create Linux rootfs begin --
$1
./rootfs_create.sh: line 4: rootfs_path: command not found

mkdir: missing operand
Try 'mkdir --help' for more information.
  • 问题分析与解决
  • $1 就是shell 脚本后的第一个参数,不需要加上单引号,直接 echo $1 即可
  • shell 的变量不需要声明直接使用,但是变量赋值,【中间不能有空格】,也就是rootfs_path = $1 之所以失败,是因为 = 号两边有【空格】,改为:rootfs_path=$1 即可
正确示例
#!/bin/bash
echo "-- create Linux rootfs begin --"
echo $1
rootfs_path=$1
echo $rootfs_path
#rm -rf rootfs_path
mkdir $rootfs_path
cd $rootfs_path
  • 运行效果:符合预期
# ./rootfs_create.sh aa
-- create Linux rootfs begin --
aa
aa
小结
  • C语言的分号,shell的空格,都需要注意符号引起的问题
  • C语言增加空格用于格式化美化代码,但是shell,多余的空格反而是个问题
  • 在Linux shell 脚本中,尽量注意【空格】【制表符】
  • 【制表符】不能随便使用4个空格代替
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853740.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号