Linux shell 获取脚本文件后面的参数的方法
原文:https://blog.csdn.net/tcjy1000/article/details/124558257
环境
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个空格代替
————————————————
版权声明:本文为CSDN博主「张世争」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tcjy1000/article/details/124558257
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
2021-07-15 WPF使用PATH来画圆
2021-07-15 C++11中的std::function
2021-07-15 QPointer的使用以及场景