首页 > 系统相关 >Linux shell 获取脚本文件后面的参数的方法

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

时间:2023-07-15 12:11:47浏览次数:41  
标签:脚本 shell -- create Linux path rootfs

原文: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

标签:脚本,shell,--,create,Linux,path,rootfs
From: https://www.cnblogs.com/bruce1992/p/17555916.html

相关文章

  • linux 中blast序列比对
     001、对数据库构建索引makeblastdb-inprotein.faa-dbtypeprot-parse_seqids-outdatabase_name-logfilelog makeblastdb:构建索引的软件-in protein.faa:要构建索引的数据库(这里是拟南芥的蛋白质序列)-dbtype:指定数据类型,prot为蛋白质、nucl为核酸;这里是蛋......
  • Linux三剑客,业务模型
    1.三剑客:grep、send、awk作用:主要应用于查看日志、分析日志、命令监控、修改配置文件shell脚本等演示数据:数据1:/etc/passwd数据2:test.sh#!/bin/bashfor((i=1;i<=10;i++))doechotest_$idone数据3:shtest.sh>1.txt 1.1sed功能:编辑,不会改变原来的内容要改变需......
  • python脚本编译成可执行文件
    如何将Python脚本编译成可执行文件作为一名经验丰富的开发者,你可能会遇到将Python脚本转换为可执行文件的需求。这样做的好处是可以在没有Python解释器的情况下运行脚本,并将脚本与其他人共享,而无需让他们安装Python解释器。下面是一份关于如何实现这个过程的指南。整个流程首先,......
  • Linux运维常用命令
    先说些废话因为笔者有着大量运维部署站点的需求,所以之前一直在陆陆续续学习并实践各种Linux的Shell命令,在此记录一些高频命令的使用的说明,方便自己回顾加深记忆。后期如果有用到一些新的命令,也会继续保持更新,如果写的有不对的地方,也请各位看官指出,非常感谢~系统信息查询的相关......
  • Mysql导入sql脚本报错,时间格式数据为空
    Mysql导入sql脚本报错,时间格式数据为空Mysql导入sql脚本时候导入的sql脚本中有时间格式为空的时候时间格字段会报错。解决方式也很简单:查看sql_mode:select@@session.sql_mode;查询结果:STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,N......
  • linux 中blast软件的安装
     001、进入ncbi官网 002、点击blast 0 003、点击downloadblast 004、点击如下链接: 005、点击下载linux64位:下载链接:https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/  006、下载完成后,上传至linux系统 ......
  • Xshell连接Fedora虚拟机
    先安装Xshell7,然后新建会话,远程连接虚拟机内的Fedora。然后会被拒绝:Couldnotconnecttoxxx:Connectionfailed.照着这篇文章的做法,$sudovim/etc/ssh/sshd_config找到#Authentication:一项,改成LoginGraceTime120PermitRootLoginyesStrictModesyes然后......
  • shell多线程/实例
    1.Shell实现多进程  使用&和wait配合实现shell多进程并行  参考连接:https://blog.csdn.net/yuefei169/article/details/83340480  (1)改串行执行为并行执行方式:将前台执行命令放在后台执行(串行命令后加&符号).(生产少使用该方式)  (2)使用元祖模拟队列来控制进程数......
  • linux samba docker
    dockerpulldperson/samba#bestpractice,orderisimportant!dockerrun-it--namesamba-p139:139-p445:445\-v/path/to/local/directory:/mount\-v/etc/localtime:/etc/localtime:ro\dperson/samba-p\......
  • centos7上源码编译安装LAMP的多虚拟主机wordpress,discuz,用lamp.sh脚本实现
    环境:centos7.4apr-1.6.3.tar.gzapr-util-1.6.1.tar.gzhttpd-2.4.33.tar.bz2mariadb-10.2.15-linux-x86_64.tar.gzphp-7.1.18.tar.bz2wordpress-4.9.4-zh_CN.tar.gz1安装包:yumgroupinstall"developmenttools"yuminstallpcre-develope......