首页
学习
活动
专区
工具
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 >

    66130

    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 所有项目以逗号分隔,并填满整行行宽。

    2K20

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

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

    74330

    Istio系列二:Envoy组件分析

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

    3.9K30

    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.2K90

    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服务器才能完美使用

    29820

    两个奇技淫巧,将 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时表示文件长度以字节计 findxargs 在使用find命令-exec...选项处理匹配到文件时, find命令将所有匹配到文件一起传递给exec执行。...这就是xargs命令用处所在,特别是find命令一起使用。 find命令把匹配到文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。...另外,在使用xargs命令时,究竟是一次获取所有参数,还是分批取得参数,以及每一次获取参数数目都会根据该命令选项及系统内核中相应可调参数来确定 find删除     [root@leon home

    90300

    将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.5K30

    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

    14.使用grep命令对某个文件进行关键词搜索时,若想要进行文件内容反选,应使用什么参数?  反斜杠 答:可使用-v参数来进行匹配内容反向选择,即显示出包含某个关键词行。...A|命令B|命令C   如果需要将管道符处理后结果既输出到屏幕,又同时写入到文件,则可以tee命令结合使用 ps -ef    -e 展示系统运行进程;  -f是扩展   UID启动进程用户 PID...5 是否校验:设置此源是否校验文件;1 为校验,0 为校验 6 公钥位置:若上面的参数开启了校验功能,则此处为公钥文件位置,若没有开启,则省略写。...是逻辑非  代表签名逻辑执行语句取反;之前若为正则表示错误,若为错误则变成正确 整数比较运算符仅仅是对数字操作。不能将数字和字符 文件等内容一起比较。...因此为了避免等到时间过长,需要通过-c 参数来规定尝试次数,使用-i 参数定义每个数据包发送间隔。-w参数定义每个数据包发送间隔,以及使用-w 参数定义等待超时。

    1.4K51

    一篇文章从了解到入门shell

    3.3、csh/tcsh C shell 使用是“类C”语法,csh是具有C语言风格一种shell,tcsh是增强版本csh,目前csh已经很少使用了。...zsh本身是兼容bash,但是他可以使用仿真模式(emulation mode)来模拟bash等,基本可以实现兼容。...$* 以一个单字符串显示所有向脚本传递参数 $$ 脚本运行的当前进程ID号 $!...后台运行最后一个进程ID号 $@ $*相同,但是使用时加引号,并在引号中返回每个参数。$? 显示最后命令退出状态。0表示没有错误,其他任何值表明有错误。...5.3、ps ps,查询进程 这个命令参数比较多,列举几个比较常用 参数 作用 a 显示终端上所有进程,包括其他用户进程。u 显示面向用户格式信息。x 显示没有控制终端进程。

    2.1K30
    领券