首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不能将$@的所有参数与sh -c一起使用

不能将$@的所有参数与sh -c一起使用。

$@是一个特殊变量,用于在shell脚本中表示所有的命令行参数。它会将所有的参数作为一个列表进行展开,每个参数都会被当作一个独立的字符串。

而sh -c是用于在shell脚本中执行命令的选项。它允许我们在shell脚本中执行一段命令字符串。

然而,由于$@会将所有的参数展开为一个列表,而sh -c需要一个命令字符串作为参数,因此不能直接将$@的所有参数与sh -c一起使用。

如果需要将$@的所有参数传递给sh -c执行的命令,可以使用数组来解决这个问题。首先将$@的参数存储到一个数组中,然后将数组作为参数传递给sh -c执行的命令。

以下是一个示例代码:

代码语言:txt
复制
#!/bin/bash

# 将$@的参数存储到数组中
args=("$@")

# 将数组作为参数传递给sh -c执行的命令
sh -c "echo ${args[*]}"

在上面的示例中,我们将$@的参数存储到名为args的数组中,并使用${args[*]}将数组展开为一个字符串。然后将这个字符串作为参数传递给sh -c执行的命令。

这样就可以将$@的所有参数与sh -c一起使用了。

需要注意的是,由于sh -c执行的命令是一个字符串,因此在字符串中使用变量时需要注意变量的引用方式。在上面的示例中,我们使用了双引号来引用变量,这样变量会被展开为其对应的值。如果需要保留变量的原始形式,可以使用单引号来引用变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# 方法与参数 常见命名空间汇总 using的使用 main方法参数

注:在C#中,引入一个命名空间时,是不能使用该命名空间的子空间。...locationNum=8&fps=1 ---- using static 指令 && 调用静态方法 在C#中在不同命名空间的类,需要先引入该命名空间,然后new(实例化)后,才能使用。...命名空间的引入是使用using指令,using指令可以在命名空间外、命名空间内的顶部并且在类的外面使用。 在命名空间外使用的using指令作用域是 该文件下的所有命名空间。...----  别名 C# 中,可以使用using指令为命名空间或类型取一个别名,别名将在文件全范围起替代作用。 最常见用途为消除两个同名类型的歧义和缩写名称。...使用visual studio 软件开发C#,一般用不到,使用控制台应用手动编译 源代码时,提供的参数会传入Mian方法中。

1.3K40

C++核心准则编译边学-F.19 对于只传递不处理的参数,使用模板类型TP&&并在传递时使用std::forward

F.19: For "forward" parameters, pass by TP&& and only std::forward the parameter(对于只传递不处理的参数,使用模板类型TP...如果对象不在本函数内部使用而是继续传递给其他代码,我们希望本函数不会改变参数的常数特性和右值特性。...return s } 右值引用作为参数类型使用的时候,首先被实参初始化,其结果是实参将无效化(右值引用的定义)。...TP&&类型的参数本质上总是应该在函数体中通过std::forward继续传递的。 译者注:最终还是要被某段代码作为左值使用的。...在下面情况下发出警示:对于函数使用TP&&类型参数(这里TP是模板类型参数名),除了在所有静态路径上精确地执行一次std::forward操作以外执行了任何(针对改参数的)其他处理。

1.2K00
  • C语言结构体类型定义+结构体变量的定义与使用及其初始化+结构体变量作为函数参数

    上一篇文章:返回指针值的函数+指向函数的指针+main()函数的参数 C语言结构体类型定义+结构体变量的定义与使用及其初始化+结构体变量作为函数参数 结构体 引例 结构体变量的定义 结构体变量的使用...结构体变量作为函数参数 结构体变量的初始化 下一篇文章 结构体 引例 输出平均分最高的学生信息 #include struct student { int num; char name...int main() { struct date year; year.year = 1980; } 1234567891011 结构体变量的使用 使用形式为:结构体变量.结构体成员名...必须使用字符串复制函数strcpy()函数来实现,如:strcpy(s1.name,"张三"); 同一类型的结构体变量间可以赋值 如:stu2=stu1;将结构体变量stu1里面的所有成员变量的值分别对应赋给结构体变量...stu2 结构体变量作为函数参数 结构体变量的成员作为函数的实参,形参为普通变量或数组 也可以将结构体变量作为函数的参数 例如:(请看代码中的详细注释,并观察运行结果) #include <stdio.h

    2.4K20

    shell_环境变量_常量_位置变量_运算(3)

    $10表示执行脚本时后面跟的第几个参数/脚本内部函数的参数 1. test.sh a b c 2. foo(){ echo $1 echo $2 echo...显示输入的所有的变量 1. $* 传递给脚本的所有参数,全部参数合为一个字符串 2. $@ 传递给脚本的所有参数,每个参数为独立的字符串;脚本嵌套脚本使用 区别 : ex:...a 5.set -- 清空所有的位置参数 ln -s 源文件 连接文件 arg.sh >echo "script name is $0" >ln -s arg.sh link.sh >..../link.sh >#script name is link.sh $0显示的是当前执行脚本的名称 不能将软连接再创建软连接 ls |wc -l 查看当前的文件夹的个数 pidof 查找指定进程的进程号...>0 -q不显示执行的结果 短路与&& 短路或|| cmd1 && cmd2 如果cmd1为假则cmd2不执行 如果cmd1为真则cmd2执行 a b 通过异或交换值 脱字符 >a=12 >

    66430

    Linux 命令(154)—— dir 命令

    -B, --ignore-backups 不列出以 ~ 结尾的隐含条目。 -c 与 -lt 一起:排序并显示 ctime(上次的时间文件状态信息的修改)。...与 -l 一起: 显示 ctime 并按名称排序,否则按 ctime 排序,最新的在前。 -C 每栏由上至下列出项目。 --color[=WHEN] 控制是否使用色彩分辨文件。...此选项可与 --sort 一起使用,但是一旦使用 --sort=none (-U) 将禁用分组。 -G, --no-group 以一个长列表的形式,不输出组名。...-h, --human-readable 与 -l 一起,以易于阅读的格式输出文件大小(例如 1K 234M 2G)。 --si 同上面类似,但是使用 1000 为基底而非 1024。...-l 使用较长格式列出信息。 -L, --dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息。 -m 所有项目以逗号分隔,并填满整行行宽。

    2.1K20

    打印罗马字符_ascii非打印控制字符

    通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。...C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。 你的任务是设计一个算法,将一个整数转换为罗马数字。不巧的是,此时打印机恰好发生了一些故障。...//因为sh实际是局部形式指针参数,是一个地址与原sh一样的指针,把sh的地址赋值为shf的地址并不能改变原sh 的值,从而没有意义。上面是因为在sh的原地址做出了改变,所以有意义。...除了直接return,还能将形参修改成全局变量,我还不会,会了再补充。 } 方法三:链表法 虽然没输出,也放这了,有空再改。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    74830

    Istio系列二:Envoy组件分析

    目录下,执行命令istio-iptables.sh --help查看参数含义,如下图所示: ?...图7 istio-iptables.sh使用方法 这条启动命令的作用为: 将容器所有流量都转发到Envoy的15001端口。 使用istio-proxy用户身份运行,UID 1337。...使用默认的REDIRECT模式来重定向流量。 将所有出站流量都重定向至Envoy代理。 将所有9080端口的流量重定向到Envoy代理。...//localhost:15000/config_dump如 进入到容器中查看所有配置,因为json文件很长,大概6000行,在此不贴出来了。...Envoy作为Sidecar容器与服务部署在一起这种方式在给运维人员带来便利的同时,也必不可少的带来了一些性能问题,试想当服务数量到达千级时,业务复杂程度与性能呈相关性,此时由于Envoy要接管所有服务的出入流量

    4K30

    Linux 常用命令

    的含义 $# 是传给脚本的参数个数 $0 执行脚本时的名称,即 /home/test.sh 输出:/home/test.sh $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell...脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $?...在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。...通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!...-f:显示指定字段的内容; -n:与“-b”选项连用,不分割多字节字符; --complement:补足被选择的字节、字符或字段; 用例: # 使用;作文分隔符切割xxx文本,取切割后的第一个 # -

    2.5K20

    Ansible基本配置以及使用示例

    ssh_args = -C -o ControlMaster=auto -o ControlPersist=1800s #传递一组选项给Ansible,而不是使用以前的默认值.ControlPersist...-C参数,这样将预览未来要做的操作,但是不会真正执行; --sudo表示使用sudo去执行相关的操作 ####copy模块使用详情 相关选项如下: backup:在覆盖之前,将源文件备份,备份文件包含时间信息...默认为yes others:所有的file模块里的选项都可以在这里使用 src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。...start.sh owner=admin group=admin mode=0755 backup=yes' --sudo -C ####file模块使用详情 相关选项如下: force:需要在两种情况下强制创建软链接...,则该选项不执行 executable:切换shell来执行指令,该执行路径必须是一个绝对路径 ####shell模块详情 与command不同的是,此模块可以支持命令管道,同时还有另一个模块也具备此功能

    1.3K90

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    -c 只计算显示符合范本样式的行数,不显示详细内容 -d 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。..." -r -n ./ 反转显示,显示与查找内容不符合的所有内容 需运用-v参数。...-C 2 #显示查找内容及其前后两行内容 查找阿拉伯数字 需要用到正则表达式[m]与{n},选项参数-E(指定使用正则表达式) []正则表达式:[m]表明查找匹配m字符的内容。....txt #或者直接使用-E参数指定使用正则表达式,则可不加转义 $ grep "[1-3][1-3]" 123.txt #与上面相同效果,也表示在123.txt中查找1-3之间数字出现两次的内容...替换的时候可用@与#替换/。 命令与查找内容可连在一起也可分开,但是中间必须有/作为间隔。

    9.3K21

    【愚公系列】2022年01月 Java教学课程 82-IDEA集成Tomcat服务器

    但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,ApacheHTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTPweb server 不是捆绑在一起的...一、liunx系统安装Tomcat 第一步:下载tomcat 第二步:上传到linux 在crt上 使用 alt+p 将windows上的软件拖进去即可(root目录) 第三步:在 /usr/local...startup.sh 方式2: ..../startup.sh 第八步:修改防火墙的规则 方式1:service iptables stop 关闭防火墙(不建议); 用到哪一个端口号就放行哪一个(80,8080,3306...)...iptables restart 二、IDEA集成Tomcat 第一步: 第二步: 第三步: 第四步: 总结 IDEA只是开发工具,需要集成JDK和Tomcat服务器才能完美使用

    30120

    两个奇技淫巧,将 Docker 镜像体积减小 99%

    回到我们的 hello world,C 语言版本的程序大小为 16 kB,Go 语言版本的程序大小为 2 MB,那么我们到底能不能将镜像缩减到这么小?...这是因为当你在 CMD/RUN 语句中使用字符串作为参数时,这些参数会被放到 /bin/sh 中执行,也就是说,下面这两条语句是等效的: CMD ./hello CMD /bin/sh -c "....静态库指的是在链接阶段将汇编生成的目标文件.o 与引用到的库一起链接打包到可执行文件中,因此对应的链接方式称为静态链接(static linking)。...使用 scratch 作为基础镜像肯定是不行的,使用 busybox 和 alpine 也不行,因为 busybox 不包含标准库,而 alpine 使用的标准库是 musl libc,与大家常用的标准库...1、使用静态库 我们可以让编译器使用静态库编译程序,办法有很多,如果使用 gcc 作为编译器,只需加上一个参数 -static: $ gcc -o hello hello.c -static 编译完的可执行文件大小为

    1.3K11

    Linux基础命令

    只更改存取时间     -c  或--no-create  不建立任何文档     -d  使用指定的日期时间,而非现在的时间     -f  此参数将忽略不予处理,仅负责解决BSD版本touch...l - 符号链接文件         f - 普通文件     -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 find与xargs 在使用find命令的-exec...选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。...这就是xargs命令的用处所在,特别是与find命令一起使用。 find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。...另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定 find删除     [root@leon home

    90500

    将stdout、stderr导入到指定文件

    This is stderr...   2、导入stdout的结果到指定文件    在csh、sh下,使用”>”将stdout的结果导入到指定文件,本例中执行   ....使用”>>”将stdout的结果追加到指定文件中,本例中执行   ./test >> out.log    查看out.log,可以看到增加了一行“This is stdout....”。   ...3、导入stderr到指定文件   在 csh 中,用 ">" 将 stdout 导向,用 ">&" 则能将 stdout 与 stderr 一起导向。可是不能只单独把 stderr 转向。...如果你只是单纯的不想把 stdout 做转向,那么就用 sh 来帮你吧。   sh -c '..../test 2> err.log'   如果同时需要得到stdout、stderr的信息,也很简单,直接使用>&就可以了。   .

    1.6K30

    linux常用命令修改文件权限_使用vim在指定目录下创建文件

    (该目录下所有文件或子目录一起改变) 一、chmod的数字方法的说明: r w x – 例如: rwxr-xr-x 目录默认权限 rw-r–r– 644文件默认权限 每个三位的权限代码(属主,用户组,其他用户...,使用chmod不用加任何参数。...如果想把目录下的文件和子目录也同时改变,需要使用 -R参数 chmod字符式权限表示法 命令格式: Chmod [用户类型] [+ | – | =] [权限字符] 文件名 表一详细说明表 chmod 用户类型...更改文件权限命令 chmod命令 1.格式:chmod [-cfvR][–help][–version]mode file 2.参数 1)必要参数 -c 当发送改变时,报告处理信息 -f 错误信息不输出...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.8K10

    Linux 中 Grep 命令的常见示例,附有精美备忘单下载!

    Grep 是一个强大的 UNIX 命令,可让您在文件内容中搜索各种参数。当您进行故障排除或调试时,它特别有用。 grep 命令有大量的选项和用例。您可能永远不需要或使用所有这些。...grep -C 5 search_pattern filename 显示不匹配的行 您可以使用 grep 显示与给定模式不匹配的所有行。...计算匹配行数 -c您可以使用选项获取与模式匹配的行数,而不是显示匹配的行。这是小写的c。...grep -c search_pattern filename 您可以结合-cand-v选项来获取与给定模式不匹配的行数。您当然可以使用不区分大小写的选项-i。...例如,如果您只想在 shell 脚本中查找字符串(以 .sh 结尾的文件),您可以使用: grep search_pattern *.sh 递归搜索目录中的所有文件 您可以使用 grep option

    1K10

    猿创征文|国产数据库---达梦应用技巧及使用案例

    /console 控制台工具(参数,备份与还原,系统信息) ..../console:控制台工具(参数,备份与还原,系统信息) 7、..../dbca.sh;选择注册数据库服务 2、命令行界面注册 在DM安装目录下script/root/dm_service_installer.sh执行脚本文件并指定参数 例子:....权限、角色、用户的关系: 权限==》用户 权限==》角色==》用户 用户与模式的关系: 归属关系,创建用户的同时会在模式下创建同名文件 权限分类: 类别 说明 系统权限 全局,所有表的操作 对象权限...commint:对表进行的操作,需要提交 rollback:回滚,在数据库中发生了数据修改的操作,但是没有commint,可以使用rollback恢复数据到修改之前的状态 十一、数据库文本导入 首先用

    55510
    领券