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

删除Bash中的位置参数?

删除Bash中的位置参数,可以使用shift命令。shift命令可以将位置参数左移,从而达到删除参数的目的。

在Bash脚本中,$1$2$3等表示位置参数,$0表示脚本本身。例如,如果有一个脚本test.sh,内容如下:

代码语言:bash
复制
#!/bin/bash
echo "参数1:$1"
echo "参数2:$2"
echo "参数3:$3"
shift
echo "删除第一个参数后:"
echo "参数1:$1"
echo "参数2:$2"
echo "参数3:$3"

执行./test.sh 1 2 3,输出如下:

代码语言:txt
复制
参数1:1
参数2:2
参数3:3
删除第一个参数后:
参数1:2
参数2:3
参数3:

可以看到,shift命令将$1的值移到了$2$2的值移到了$3$3的值移到了$4,而原来的$1的值被删除了。

需要注意的是,shift命令只能删除位置参数,不能删除其他变量。如果需要删除其他变量,可以使用unset命令。

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

相关·内容

(23)Bash位置参数变量

位置参数变量 位置参数变量主要是用来向脚本当中传递参数或数据,变量名不能自定义,变量作用是固定。...位置参数变量 作用 $n n为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上参数需要用大括号包含,如9代表第一到第九个参数,十以上参数需要用大括号包含,如9代表第一到第九个参数,十以上参数需要用大括号包含...,如{10}. $* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体 $@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 $# 这个变量代表命令行中所有参数个数 例1...②通过$n实现一个简单加法计算器 $n就是用来把你命令和命令后面跟参数传递给脚本$n(n=1,2,3,4…)代表位置参数变量 ? 例2.$#、$*、$@ ①简单演示 ?...②$*和$@区别(了解) $*会把所有参数当成一个整体,只执行一次循环。$@会把不同参数当作独立,有几个参数执行几个循环。 ? END

89320

bash 变量和参数

bash 生涯第一坑。bash ,赋值 = 两边不能有空格。 有空格又会怎样?...转义,变量不会被替换 变量类型 这里当然不是说字符串、整形什么,其实 bash 变量都可以理解为字符串。 bash 中有四种类型变量,它们是环境变量、本地变量、位置变量和特殊变量。...位置变量 其实就是我们说参数了,也是特殊变量一种,因为常用,单独拿出。 $n # n 为自然数,1、2、3…… # 实例 ..../test.sh foo bar echo $1; # foo echo $2; # bar 大于 $9 参数必须被放在大括号。...echo "${10}" 特殊变量 变量 含义 $$ 表示当前 Shell 进程 ID ,即 pid $n 上述位置变量 $# 传递给脚本或函数参数个数 $* 传递给脚本或函数所有参数 $@ 传递给脚本或函数所有参数

1.1K30
  • bash 变量和参数

    bash 生涯第一坑。bash ,赋值 = 两边不能有空格。 有空格又会怎样?...转义,变量不会被替换 变量类型 这里当然不是说字符串、整形什么,其实 bash 变量都可以理解为字符串。 bash 中有四种类型变量,它们是环境变量、本地变量、位置变量和特殊变量。...位置变量 其实就是我们说参数了,也是特殊变量一种,因为常用,单独拿出。 $n # n 为自然数,1、2、3…… # 实例 ..../test.sh foo bar echo $1; # foo echo $2; # bar 大于 $9 参数必须被放在大括号。...echo "${10}" 特殊变量 变量 含义 $$ 表示当前 Shell 进程 ID ,即 pid $n 上述位置变量 $# 传递给脚本或函数参数个数 $* 传递给脚本或函数所有参数 $@ 传递给脚本或函数所有参数

    1.4K00

    如何从Bash变量删除空白字符

    有没有一种简单方法可以从 $var 删除空格(就像 PHP trim() )? 有处理这个问题标准方法吗? 我可以使用 sed 或 AWK,但我希望有更优雅解决方案。.../bin/bash var=" test " var=$(echo $var | xargs) echo "|${var}|" 上述代码 xargs 会删除字符串首尾空白符,还会将字符串中间连续多个空格压缩为单个空格...方法三:使用 Bash 内置函数和通配符 #! /bin/bash var=" abc " # 删除前导空白字符 var="${var#"${var%%[!...#Shell-Parameter-Expansion 相关阅读: 在Bash如何检查字符串是否包含子字符串 如何在Bash连接字符串变量 为什么要使用xargs命令 Bash$$ $!...$* $@ 等各种符号含义 在Bash如何将字符串转换为小写 更多好文请关注↓

    29840

    三维世界相机位置参数

    上篇文章带读者完成了一个3d弹弹球加强版,读者顺便了解了下灯光和阴影基本用法,关于相机位置参数问题,我们在前文只是简单提过,本篇文章,想和读者分享下相机位置参数问题。...关于相机位置参数,这里主要介绍三个:position、up以及lookAt。...position 首先position表示相机位置,相机位于不同位置可以看到不同场景,这个因该很容易理解,例如在上文案例,将相机沿x轴水平移动,移动后,就能看到z轴了,添加如下代码: camera.position.x...那么如何固定手机位置呢?这就需要另外一个参数up。...up up用来指定相机快门位置,相机快门一般在相机上方,指定了快门位置,相当于相机就不能旋转了,这样相机位置就算彻底固定死了,默认情况下,相机快门位置为(0,1,0),即相机是垂直摆放(就是本文图一读者看到效果

    1.4K70

    Linuxset命令设置位置参数

    set 是Linux 内置命令,这是一个非常有用命令,只是可能因为不熟悉,所以就不怎么用,如果你看一些比较成熟shell scripts, 经常会看到用set地方,本文对set命令-e , —...bash 命令返回code 如果不是0,那么脚本立即退出,后续脚本将不会得到执行机会; set +e ; 这个是默认状态,表示就算后续命令如果返回值不是0,那么脚本依然向下执行; 所以...set -e其实就是从设置位置起,给脚本每一条命令加上了同一个退出条件;而set +e 则是取消这种设置; 看下面的例子: [root@localhost shell_commands]# cat.../bin/bash function lookupstr(){ grep "sles" /etc/os-release >/dev/null 2>&1 if [ "$?"...,通常传递参数给shell脚本,这些参数叫做位置参数,那么有没有可能在没有用shell脚本时候也使用位置参数呢?

    4.6K20

    Bash如何从字符串删除固定前缀后缀

    "} $ echo "${foo}" o-world $ foo=${foo%"$suffix"} $ echo "${foo}" o-wor 这在手册Shell参数扩展部分有记录: ${parameter...如果模式与 parameter 扩展后开始部分匹配,则扩展结果是从 parameter 扩展后删除最短匹配模式(一个 # 情况)或最长匹配模式(## 情况)值 ${parameter...如果模式与 parameter 扩展后末尾部分匹配,则扩展结果是从 parameter 扩展后删除最短匹配模式(一个 % 情况)或最长匹配模式(%% 情况)值。...https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion 相关阅读: 在bash:-(冒号破折号)用法...在Bash如何将字符串转换为小写 在shell编程$(cmd) 和 `cmd` 之间有什么区别 如何从Bash变量删除空白字符 更多好文请关注↓

    45010

    python函数位置参数与关键字参数

    Python函数参数依照不同方式,可以有不同分类,这里以“位置参数”与“关键字参数”两类进行讨论. A....参数x就是位置参数,而参数base就是关键字参数;所以关键字参数通常是以“key=value”方式出现在函数定义当中,而位置参数则只有参数名字出现;据此就可以识别位置参数和关键字参数 B....在定义函数时候两种参数不同点: 关键字参数因为是以"key=value"方式出现在函数定义时候参数列表,并且在函数体对该参数引用是key, 所以这个参数在函数参数列表位置无关紧要....但是位置参数则不同,如果函数定义时候,其参数列表里面全部是位置参数,那么在函数定义时候,这些参数参数列表位置也无关紧要....,也可以直接用value方式,所以在这个例子,变量s 以及m默认值都被修改了;比如 int("123",8) 与 int("123",base=8) 两种方式都表示传递 给关键字参数 base

    1.3K10

    java列表删除指定位置元素_怎么删除数组某个元素

    大家好,又见面了,我是你们朋友全栈君。 思路 1. 因为数组长度在初始化时候是指定并且不可变,所以不能在原有的数组上直接进行删除操作,需要新建一个长度为当前长度减1数组 2....从空间复杂度来说removeElementByLoop性能能优于removeElementByCopy,因为removeElementByCopy需要更多次swap。 下面是测试结果 1....当原数组长度较少时候....(array, position); —-> took:7 ms by copy solution took:88 ms by loop solution 从测试结果可以看出来,在执行时间上花费...,removeElementByCopy效率明显高于removeElementByLoop 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169495.html原文链接

    5.4K20

    bash变量

    bash变量 <span style="display: inline !...<em>中</em>,变量是一个用来存储数据<em>的</em>实体。...在<em>bash</em><em>中</em>,变量分为环境变量(全局变量)和局部变量。 环境变量可以被子进程读取和修改,父进程对环境变量<em>的</em>修改会传递到子进程,而子进程对变量<em>的</em>修改不会传递到父进程。...设置变量 使用变量名=值<em>的</em>格式来为变量赋值,需要注意<em>的</em>是=左右没有空格: $ zhang=22 $ echo $zhang 22 $ zhang=55 $ echo $zhang 55 使用unset命令<em>删除</em>变量...<em>bash</em>有一些默认<em>的</em>环境变量,使用env查看: $ env XDG_SESSION_ID=39513 TERM=xterm SHELL=/bin/<em>bash</em> # 省略 在<em>bash</em><em>中</em>,环境变量<em>的</em>变量名一般全部采用大写字母

    2.2K80

    python之函数位置参数

    ---- 一、背景   实际开发过程,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作代码封装为函数,然后在需要地方调用该函数。...这样不仅可以实现代码复用,还可以使代码更有条理性,增加代码可靠性。下面我们来介绍一下python函数位置参数相关内容。...---- 二、位置参数   在定义函数时,可以为函数参数设置默认值,这个参数被称为默认值参数。带有默认值参数函数。   ...如果在定义函数时某个参数默认值为一个变量,那么参数默认值只依赖于函数定义时该变量值。例:运行以下程序,分析运行结果。...---- 三、参考 1、廖雪峰官网 2、python官网 3、Python编程案例教程 ---- 四、总结   以上就是就是关于Python函数位置参数相关知识,可以参考一下,觉得不错的话,欢迎点赞

    54530

    C#如何删除字符串任何位置空格?

    C#如何删除字符串任何位置空格? —— 新手编程1001问之C#编程基础 ---- 你或许知道你能使用String.Trim()方法,去除字符串头和尾空格。...不幸运是,这个Trim方法不能去除字符串中间C#空格。 事实上,C#提供了多种方法清除字符串空格,我们分述如下。 首先,我们最容易想到的当然是Trim()方法,示例代码如下: ?...那么,C#有没有一个直接清除字符串任意位置空格方法呢? 答案是肯定,我们可以使用替换函数 Replace() 来实现。示例代码如下: ?...事实上,有同学已经做过测试,在多种替换(清除空格)方案,Replace()的确是效率最高。...上面的代码运行结果,同样显示为:Thisiswhatmyteststringlookslike 好了,从这个问题答案,我们能体会到,一个看似简单问题,总有多种算法实现。

    11.6K40

    cc++:提取可变参数宏__VA_ARGS__偶数位置参数

    https://blog.csdn.net/10km/article/details/80769615 考虑一个可变参数宏__VA_ARGS__奇数位代表参数类型,偶数位代表参数名,想要提取...__VA_ARGS__中所有的偶数位参数名,该怎么实现呢?...利用上一篇博客《c/c++:计算可变参数宏 __VA_ARGS__ 参数个数》成果可以获取__VA_ARGS__参数个数。...在这个基础上添加一系列宏定义就可以实现,下面是完整代码及测试用例, gcc下测试通过: // 计算 __VA_ARGS__ 参数个数,最大支持64个参数 #define FL_ARG_COUNT(......FL_ARG2(t,v),FL_ARG62(__VA_ARGS__) // 提取动态参数偶数位参数,比如 一个参数序列:1,2,3,4,返回 2,4,最大支持64个参数 // 参数个数为奇数时会导致编译报错

    1.3K10

    bash和shell入门

    -c :将目前 shell 所有 history 内容全部消除 -a :将目前新增 history 指令新增入 histfiles ,若没有加 histfiles , 则预设写入 ~/.bash_history...这样会 有 ~/.bash_history 写入问题吗?想一想,因为这些 bash 在同时以 root 身份登入, 因此所有的 bash 都有自己 1000 笔记录在内存。...不过,在某些 Unix like 机器,还是可能需要动用一些手脚, 才能够 让我们输入比较快乐~举例来说,利用 [backspace] 删除,要比利用 [Del] 按键来顺手吧!...很多 shell 都预设启用 -u 参数。 # 若要取消这个参数,输入 set +u 即可! 范例三:执行前,显示该指令内容。...Ctrl + S 暂停屏幕输出 Ctrl + Q 恢复屏幕输出 Ctrl + U 在提示字符下,将整列命令删除 Ctrl + Z 『暂停』目前命令 7.5 通配符与特殊符号 在 bash 操作环境还有一个非常有用功能

    95320

    理解 Bash 尖括号

    Bash 内置了很多诸如 ls、cd、mv 这样重要命令,也有很多诸如 grep、awk、sed 这些有用工具。但除此之外,其实 Bash 还有很多可以起到胶水作用标点符号,例如点号(.)...需要注意是,如果 dir_content.txt 这个文件不存在,Bash 会为你创建;但是如果 dir_content.txt 是一个已有的非空文件,它内容就会被覆盖掉。...你也可以不使用 > 而使用 >>,这样就可以把新数据追加到文件末端而不会覆盖掉文件已有的数据了。...文件,然后使用 wc -l 计算出 dir_content.txt 文件行数(也就是家目录文件数)并追加到 dir_content.txt 末尾。...(-r 参数表示降序排列,因此 McDormand 会排在最前面)

    1.3K10

    bash shell参数展开(Shell Parameter Expansion):替换变量(variable)字符串

    在写bash shell脚本时,如果遇到要替换变量字符串,首先想到就是用sed命令,比如下面的示例将变量str数字123替换成UUU: $ str=hello,word,123 $ echo...$str | sed -E -e 's/[0-9]/U/g' hello,word,UUUU 上面的例子中用到echo,sed两个命令来实现字符串替换,略显麻烦 其实bash提供了更简单语法来实现上面的功能...,按照{parameter/pattern/string}模式可以简单的如下替换 {parameter/pattern/string}格式说明: 参数名 说明 parameter 变量名 pattern...《Shell-Parameter-Expansion(Shell参数展开)》章节 https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html...#Shell-Parameter-Expansion 上面只是《Shell参数展开》一小部分功能应用示例, 关于《Shell参数展开》官方文档中提供了远比上面内容更丰应用方式,建议看看原文档你能找到更多有用技巧

    3.8K20
    领券