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

Bash打印除first - print之外的所有参数- print返回文件名

Bash是一种常用的Unix shell和命令语言,用于在Linux和其他类Unix系统上进行脚本编程和命令行操作。在Bash中,可以使用特定的语法和命令来实现打印除第一个参数之外的所有参数,并返回文件名的功能。

下面是一个示例的Bash脚本,用于实现这个功能:

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

# 获取第一个参数
first=$1

# 打印除第一个参数之外的所有参数
for arg in "${@:2}"
do
    echo $arg
done

# 返回文件名
echo $0

这个脚本首先将第一个参数存储在变量first中。然后,使用for循环遍历从第二个参数开始的所有参数,并使用echo命令打印每个参数。最后,使用echo $0命令返回脚本的文件名。

这个功能可以在很多场景中使用,例如在脚本中需要处理多个参数但不需要第一个参数时,可以使用这个功能来打印和处理剩余的参数。

腾讯云提供了一系列与云计算相关的产品,包括云服务器、云数据库、云存储等。具体推荐的产品和产品介绍链接地址可以根据实际需求和场景来确定,可以参考腾讯云官方网站的相关文档和产品介绍页面。

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

相关·内容

Shell 编程(六):文本三剑客之 Awk

Copy 打印处理行行号 > awk '{print NR}' student.txt 1 2 3 4 5 Bash Copy 打印多文件单独记录行号 > awk '{print FNR}' string.txt..."&"}{print $3}' string.txt awk 'BEGIN{RS="--";FS="|";ORS="&"}{print $3}' string.txt Bash Copy 输出文件名 >...Bash Copy 匹配两种用法 RegExp 匹配 /etc/passwd 文件行中含有 root 字符串所有行 > awk '/root/{print $0}' passwd root:x:0:...减 * 乘 / % 模 ^或** 乘方 ++x 在返回 x 变量之前,x 变量加1 x++ 在返回 x 变量之后,x 变量加1 使用 awk 计算 /etc/services 中空白行数量 >...,str) 在 str 中搜索符合 RE 字串,将其替换为 RepStr;(替换所有) 替换个数 以:为分隔符,返回 /etc/passwd 中每行中每个字段长度 > awk '{print length

34420
  • Shell脚本编程

    0 * @ # $1,$2,…:对应调用第1,第2等参数 $0:命令本身 $*:传递给脚本所有参数(把所有参数当作整体) $@:传递给脚本所有参数 $#:传递给脚本参数个数 案例1: myecho.sh.../bin/bash echo "命令本身是:$0" echo "第一个参数是:$1" echo "第二个参数是:$2" echo "一共有$#个参数" echo "所有参数是:$@" 案例2:判断所给文件行数...也就是expr这个命令后面跟是3个参数 练习题 练习1:计算/etc/passwd文件中第10个用户第20个用户ID之和 练习2:传递两个文件路径参数给脚本,计算这两个文件之中所有空白行之和...来获取返回值 函数参数 funWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !"...当n>=时,需要使用${n}来获取参数 调试脚本 -x : 在执行时显示参数和命令; +x:禁止调试 -v:当命令行进行读取时显示输入; +v:禁止打印输入。

    2.1K20

    培养这10个习惯,你就离UNIX高手更进一步了

    如果键入 f,然后按 Esc 键,将填充 file,之后你需要输入 1、2 或 3 来完成相应文件名Bash Bash Shell 也提供了文件名补全功能,但它使用 是Tab 键。...您在 Bash Shell 中不需要设置任何选项即可启用文件名补全功能,该选项是缺省设置Bash 还实现了其他功能。...重用以前参数 !$ 命令返回某个命令使用的上一个文件名参数。但如果某个命令使用多个文件名,而您只希望重用其中一个文件名,该如何做? !:1 操作符返回某个命令使用第一个文件名。...匹配行尾之外任意单个字符 星号 (*) 匹配零个或多个前驱字符或表达式 {x,y} 匹配出现过 x 到 y 个和前面相同内容 {x} 精确匹配出现过 x 个和前面相同内容 {x,} 匹配出现过...{print a[i]; i++;} }' text testing the awk command 打印文本文件中指定字段是一项简单 awk 任务。

    78920

    如何编写一个shell脚本

    -name filename -print  tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile  basename file: 返回不包含路径文件名比如...-mtime -1 -type f -print  用来查找过去24小时(-mtime –2则表示过去48小时)内修改过文件。如果您想将所有查找到文件打一个包,则可以使用以下脚本:   #!...$*,该变量包含了所有输入命令行参数值。...通常惯例是在所有可选参数之前加一个减号,后面再加上参数值 (比如文件名)。   有好多方法可以实现对输入参数分析,但是下面的使用case表达式例子无遗是一个不错方法。 #!...脚本首先在所有输入命令行参数中进行循环,将输入参数与case表达式进行比较,如果匹配则设置一个变量并且移除该参数。根据unix系统惯例,首先输入应该是包含减号参数

    1.7K40

    shell(一)

    2.3.3.1和脚本文件相关变量 符号 意义 $0 获取当前执行shell脚本文件名 $$ 获取执行shell脚本进程号 $n 获取当前执行shell脚本第n个参数值,n=1..9,当n为0时表示脚本文件名...-v:显示不包含匹配文本所有行。 如果配合管道符使用,后面的文件名是不用写。 小技巧:精确定位错误代码。 -r代表是递归执行命令。...格式: sed-i'行号a\增加内容'文件名 注意:如果增加多行,可以在行号位置写个范围值,彼此间使用逗号隔开: sed -i '1,3a\增加内容' 文件名 示例: 在第2行下一行增加内容 add-first...命令格式: awk [参数] '[动作]' [文件名] 常见参数: -F:制定行分割符。 常见动作: print:显示内容。 $0:显示当前行所有内容。...'{print $1}' awk.txt nihao nihao 打印第1行第1列和第3列内容: ethanyan@ethanyan-PC:~$ awk 'NR==1 {print $1,$3}'

    3.4K50

    详解bash脚本调试机制

    以调试模式运行脚本 通过bash -x 方式可以在调试模式下运行整个脚本, bash会在在运行前打印出了每一行命令, 而且每行前面用+号表明命令嵌套层数. > bash -x debug.sh...+ echo 'First line' First line # 输出结果没有加号 ++ date # 先执行命令替换 两个加号是因为该命令嵌套在echo中 + echo 'Print datetime...关键字用于在解释出现错误时执行预设操作, 例如打印出错命令: trap 'echo $BASH_COMMAND' ERR 但鉴于使用trap进行调试执行效率过低, 建议在较为复杂脚本中直接使用调试选项或者使用...短命令 长命令 效果 set -f set -o noglob 对文件名停用元字符匹配 set -v set -o verbose 打印输入命令 set -x set -o xtrace 命令行首打印...设置选项辅助调试 为了方便调试,我们可以使用set命令对bash选项进行设置: > set -o # 查看所有选项开关状态 > set -o | grep xtrace xtrace off

    1.4K31

    iOS自动化探索(四)自动化测试框架pytest - 安装和使用

    ; inc方法是我们定义一个自增函数,该函数将传递进来参数加1后返回; test_answer是我们编写一个测试函数,其中我们使用基本断言语句assert来对结果进行验证,测试函数以test_xxx...testing/ 运行包含指定关键字测试方法, 可以是文件名、类名、测试函数名 pytest -k "MyClass and not method" 执行node id运行测试脚本,每一个被收集测试方法都会分配一个指定...但如果所有脚本运行时间都小于0.01s, 就不显示了, 除非带上-vv参数 pytest --durations=10 -vv 输出结果: ==============================...import pytest print pytest.main() 输出: (wda_python) bash-3.2$ python pytestDemo.py ================...-3.2$ 我们还可以在main中传递参数: pytest.main(['-q','test_sample.py']) 给pytest.main添加plugin, 如下示例在执行开头和结尾, 添加打印信息

    1.3K21

    shell语法学习

    10.使用 AND 运算符 AND 运算符允许我们程序检查是否同时满足多个条件。由 AND 运算符分隔所有部分必须为 true。否则,包含 AND 语句将返回 false。...;; *) echo "Neither 100 nor 200" ;; esac Bash 条件写在 case 和 esac 关键字之间。*)用于匹配 100 和 200 以外所有输入。.../test.sh X=44 Y=100 Bash 它应该返回 X+Y=144。这里参数存储在 “$@” 中,脚本使用 Linuxcut 命令获取它们。...fi Bash 我们直接从命令行传递文件名作为参数。...34.添加批处理扩展 下面的示例将对目录中所有文件应用自定义扩展名。创建一个新目录,并将一些文件放在其中以供演示。我文件夹共有五个文件,每个文件名为 test,后跟(0-4)。

    1.2K40

    40 个简单又有效 Linux Shell 脚本示例

    /hello-world.sh 它将打印出传递给脚本内部回显字符串。 2、使用 echo 打印 echo 命令用于在 bash打印信息。...10、使用 AND 运算符 AND 运算符允许我们程序检查是否同时满足多个条件。由 AND 运算符分隔所有部分必须为 true。否则,包含 AND 语句将返回 false。...*)用于匹配 100 和 200 以外所有输入。 14、命令行参数 在许多情况下,直接从命令 shell 获取参数是有益。下面的示例演示了如何在 bash 中执行此操作。 #!...fi 我们直接从命令行传递文件名作为参数。...34、添加批处理扩展 下面的示例将对目录中所有文件应用自定义扩展名。创建一个新目录,并将一些文件放在其中以供演示。我文件夹共有五个文件,每个文件名为 test,后跟(0-4)。

    30910

    Bash特殊变量:$0, $#, $*, $@, $?, $$实战

    例如,$ 表示当前Shell进程ID,即pid,看下面的代码: $echo $$ 运行结果 29949 特殊变量列表 变量 含义 $0 当前脚本文件名 $n 传递给脚本或函数参数。...n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数参数个数。 $* 传递给脚本或函数所有参数。 $@ 传递给脚本或函数所有参数。.../bin/bash echo "File Name: $0" echo "First Parameter : $1" echo "First Parameter : $2" echo "Quoted...形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有参数作为一个整体,以"$1 $2 … $n"形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 形式输出所有参数

    94540

    Shell 编程(六):文本三剑客之 Awk

    内置变量 语法格式 解释 $0 打印所有信息 $1 - $n 打印第 1 到 n 个字段信息 NF (Number Field) 处理行字段个数 NR (Number Row) 处理行行号...Jerry 98 wang 87 打印每行行字段个数 > awk '{print NF}' student.txt 5 5 5 5 5 打印处理行行号 > awk '{print NR}' student.txt...$3}' string.txt 输出文件名 > awk '{print FILENAME}' string.txt string.txt 格式化输出之 printf 格式符 含义 %s 打印字符串 %...:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 匹配 /etc/passwd 文件行中以 yarn 开头所有行 > awk '/^yarn...;(替换所有) 替换个数 以:为分隔符,返回 /etc/passwd 中每行中每个字段长度 > awk '{print length($0)}' passwd 31 32 39 36 40 31

    1.2K40

    五、常用模块

    (path) 返回path规范化绝对路径 20 os.path.split(path) 将path分割成目录和文件名二元组返回 21 os.path.dirname(path) 返回path目录...其实就是os.path.split(path)第一个元素 22 os.path.basename(path) 返回path最后文件名。如何path以/或\结尾,那么就会返回空值。...将多个路径组合后返回,第一个绝对路径之前参数将被忽略 28 os.path.getatime(path) 返回path所指向文件或者目录最后存取时间 29 os.path.getmtime(path...创建压缩包并返回文件路径,例如:zip、tar base_name: 压缩包文件名,也可以是压缩包路径。...默认匹配\n之外任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\

    72590

    一文掌握shell脚本基本语法

    $1是第1参数、$2是第2参数、…、$n表示第n个参数。⚠️注意:10以上要用大括号,如{10}。 $? 最后运行命令结束代码(返回值),执行成功返回0,不成功则返回非零值(一般解释为错误码)。...如 "$*"用「"」括起来情况、以"$1 $2 … $n" 形式输出所有参数。 $@ 所有参数列表。如 "$@"用「"」括起来情况、以"$1" "$2" … "$n" 形式输出所有参数。...: bash +x paramshell.sh 7 77 #打印信息 This is $0 ---- : paramshell.sh # 显示文件名 This is $1 ---- :...ASCII码范围:33 ~ 126 之间字符 不包括空格字符(空格字符ASCII码是32) [:print:] 打印任何可视字符。...未指定pattern,则所有行都会被处理。 未指定ACTION,则屏幕直接打印匹配到行内容。

    4K01

    【建议收藏系列】爆肝3w字带你理解什么叫运维~

    ,但是函数定义中没有返回值也没有参数列表。...]可以匹配一位十六进制数字 ^ 位于[]括号内开头,匹配括号中字符之外任意一个字符 [^xy]匹配xy之外任一字符,因此[^xy]1可以匹配a1、b1但不匹配x1、y1 [[:xxx...-print 要想让系统高负荷运行,就从根目录开始查找所有的文件: $ find / -name "*" -print 如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt文件...9、使用type选项 在/etc目录下查找所有的目录,可以用: $ find /etc -type d -print 在当前目录下查找目录以外所有类型文件,可以用: $ find . !...pattern2 使用p命令需要注意,sed是把待处理文件内容连同处理结果一起输出到标准输出,因此p命令表示除了把文件内容打印出来之外还额外打印一遍匹配pattern行。

    2.1K30

    shell学习教程(超详细完整)

    $@ 这个变量也代表命令行中所有参数,不过$@把每个参数区分对待 $# 这个变量代表命令行中所有参数个数 1 是你给你写shell脚本传第一个参数,2 是你给你写shell脚本传第二个参数...bash Test.sh 1 2 结果输出: shell脚本本身名字: Test.sh 传给shell第一个参数: 1 传给shell第二个参数: 2 *会把接收所有参数当成一个整体对待,而@...则会区分对待接收到所有参数。...匹配换行符\n之外任意单个字符 ab.匹配abc或abd,不可匹配abcd或abde,只能匹配单字符 [ ] 匹配包含在[字符]之中任意一个字符 coo[kl]可以匹配cook或cool [^]...3、打印完第一列,然后打印第二列 : awk '{print $1 $2}' filename 4、打印文本文件总行数 : awk 'END{print NR}' filename 5、打印文本第一行

    6.2K21
    领券