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

Linux 命令(251)—— builtin 命令(builtin)

这在定义一个名称与 Shell 内置命令相同的函数时非常有用,可以函数内通过 builtin 使用内置命令。...builtin 命令用以执行 Shell 内建命令,既然是内建命令为什么还要以这种方式执行呢? 这个 Shell 命令的搜索顺序有关: 别名,使用alias创建的命令。 关键字,如if,for。...函数 内置命令,如cd,pwd等 外部命令PATH路径寻找 因为 Shell 命令执行时函数优先于内建命令,如果自定义了一个与内建命令同名的函数,那么会执行这个函数而非真正的内建命令。...虽然使用 builtin 可以显示执行内部命令而非同名函数,但是在编写 Shell 函数时,还是建议尽可能避免同名,提高代码可读性。...2.命令格式 builtin shell-builtin [arguments] 3.选项说明 无。 4.返回值 如果给定的命令不是 Shell 内置命令,则返回状态为 false。

38240

shell语法

/test.sh当前路径下执行(相对路径) /home/acs/test.sh绝对路径下执行 ~/test.sh家目录下执行 用解释器执行 bash test.sh echo 意思和c++cout 或...否则会报错 使用变量 使用变量需要加上¥(此符号bash中意为取值),或者$(),花括号是可选的,主要是为了帮助解释器识别边界 echo $yxc echo $(yxc) echo会自动换行 错误echo...超过等待时间后会自动忽略此命令 echo命令(相当于cout或printf) 输出格式:echo STRING 显示普通字符串:echo “Hello acterminal”,引号也可以省略 显示转义字符...显示结果到echo “Hello world” > output.txt 原样输出字符串,不进行转义或取变量:用单引号引起来 显示命令的执行结果:用`引起来 printf语句(c++是以,隔开每一项...&取值出现错误(too many arguments)) 括号内的常熟,最好用单或双引号括起来 判断语句 if then语句,(类似与c++的if-else语句)if后面跟的是命令,不是值 if expr

9410
您找到你想要的搜索结果了吗?
是的
没有找到

shell(一)

图形界面shell就是 GUI shell,而命令行式shellWindows为 cmd.exe命令提示字符、Linux则是 bash等等。.../bin/bash a="$1" echo "您选择的套餐为: 套餐 ${a:-1}" 我们终端执行下面的命令分别得到结果如下: bash hello.sh 您选择的套餐为: 套餐 1 bash...这两条命令其实还可以一起使用: bash test.sh 1>> test-ok 2>> test-err 最后会将正确输出的内容,输入到 test-ok文件;将报错信息输入到 test-err文件.../bin/bash echo '下一条错误命令' dsfsafsafdsa 下面执行一下脚本: ethanyan@ethanyan-PC:~$ bash test.sh 下一条错误命令 test.sh...我们使用全部信息: bash test.sh >> test-all 2>&1 然后我们查看文件 test-all: ethanyan@ethanyan-PC:~$ cat test-all 下一条错误命令

3.3K50

《Linux命令行与shell脚本编程大全》第十五章 呈现数据

15.1 理解输入和输出 现在知道两种显示脚本输出的方法 1)显示器屏幕上显示 2)将输出文件重定向到文件 15.1.1 标准文件描述符 Linux系统将每个对象当做文件处理。...>>  表示追加到文件 注意:用了输出重定向,shell并未将错误消息重定向到输出重定向文件错误消息仍会显示显示。 3.STDERR 标准错误(2) STDERR文件描述符来处理错误消息。...15.3 脚本重定向输入 exec 命令允许你将STDIN重定向到Linux系统上的文件。 例子:查看test2的数据   1 #!.../bin/bash   2 exec 0< test2 # 输入重定向到test2   3 echo "test2:"   4 count=1   5 while read line   6...意味着给3的数据都将出现再显示器上   4 exec 1>test5log.txt # 将STDOUT重定向到文件。但是3仍然指向STDOUT原来的位置,也就是显示器。这时给3发会显示显示

1.3K60

总结一篇shell调试技巧及常见的脚本错误

/bin/bash echo "guoke123" [root@game scripts]# sh -n test7.sh #脚本没有语法错误,所以没有输出 #演示脚本存在语法错误 #!...set -v :显示读取的所有行 set -x :显示所有命令及其参数 #使用 使用set -x可以缩小调试的作用域范围 set -x开启调试功能,set +x关闭调试功能 #示例 #!...命令调试 一般可能出现问题的脚本的重要部分加入echo命令 #示例 [root@game scripts]# cat test8.sh #!...5.shellcheck shellcheck是一个可检查sh/bash脚本和命令语法的小工具 #常见的shell脚本错误示例 #1.括号两端没有空格 [root@game scripts]# cat...sh: line 5: `else' #执行脚本之后会提示语法错误 #需要注意的是shell脚本解释器一般不会很精确的定位到错误,需要上下联都看一下 #总结 进行脚本编写的过程,应该注重书写的规范性

1.5K30

Shell编程

$- 显示Shell使用的当前选项,与set命令功能相同。 $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 #!/bin/bash echo "Shell 传递参数实例!"...循环过程,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。...后台运行的最后一个进程的ID号 $@ 与$*相同,但是使用时加引号,并在引号返回每个参数。 $- 显示Shell使用的当前选项,与set命令功能相同。 $? 显示最后命令的退出状态。...0表示没有错误,其他任何值表明有错误。 数组 1 定义数组 数组可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(。....sh,test1定义一个变量arr=(java c++ shell),test2对arr进行循环打印输出。

4.9K10

构建shell脚本一文就够

/test1 # 成功运行脚本2017年 07月 26日 星期三 10:09:23 CSTwsx tty7 2017-07-26 09:48 (:0) 显示消息 echo命令后面加上一个字符串...tty7 2017-07-26 09:48 (:0) 如果想把文本字符串和命令输出显示同一行,可以用 echo语句的 -n参数。...使用方括号 bash shell提供了一种更简单的方法来执行数学表达式。bash将一个数学运算结果赋给某个变量时,可以用美元符和方括号($[operator])将数学表达式围起来。...它实际上是一门编程语言,它允许命令输入浮点表达式,然后解释并计算该表达式,最后返回结果。...0 按照惯例,一个成功结束的命令的退出状态码是0。如果有错误,则显示一个正数值。

1.4K51

Bash 老司机也可能忽视的 10 大编程细节

但这里推荐使用双括号,因为它的容错率更高,而且支持更多功能。另外, Linux 括号 [ 实际与 test 命令是等价的,因此用双括号显然能避免更多的麻烦。...除了使用双括号之外,还可以用 test 命令的运行结果作为 if 语句的判断条件,例如: test -e /tmp/awesome.txt 如果 awesome.txt 文件存在,则命令返回 0,否则返回错误码...关于返回值 每一个 Linux 程序都有返回值,按照规范,这个返回值 0-127 之间,0 表示成功,其他值是含义各不相同的错误码。 Bash 充分利用这一点可以增加程序的灵活性。...使用后台任务 Bash ,可以通过命令后添加 & 符号实现后台多任务。例如: long_running_command & 把进程放入后台后,还可以通过 fg 命令将其切换到前台。...此外还可以通过 set -o 显示所有可以设置的选项。 这也是为什么许多 shell 脚本都以 set -eu 或者 set -eux 等做为开头的原因,因为这样就可以让脚本运行在更安全的环境下。

84960

是不是Bash编程老司机,看完这10条细节就知道了

但这里推荐使用双括号,因为它的容错率更高,而且支持更多功能。另外, Linux 括号 [ 实际与 test 命令是等价的,因此用双括号显然能避免更多的麻烦。...除了使用双括号之外,还可以用 test 命令的运行结果作为 if 语句的判断条件,例如: test -e /tmp/awesome.txt 如果 awesome.txt 文件存在,则命令返回 0,否则返回错误码...关于返回值 每一个 Linux 程序都有返回值,按照规范,这个返回值 0-127 之间,0 表示成功,其他值是含义各不相同的错误码。 Bash 充分利用这一点可以增加程序的灵活性。...使用后台任务 Bash ,可以通过命令后添加 & 符号实现后台多任务。例如: long_running_command & 把进程放入后台后,还可以通过 fg 命令将其切换到前台。...此外还可以通过 set -o 显示所有可以设置的选项。 这也是为什么许多 shell 脚本都以 set -eu 或者 set -eux 等做为开头的原因,因为这样就可以让脚本运行在更安全的环境下。

1.1K71

解释型语言-shell

bash完全兼容sh,也就是说,用sh写的脚本可以不加修改的bash执行 二、shell特点 简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。...开发容易:可以短时间内完成一个功能强大又妤用的脚本。 三、常见错误 报错:-bash: ....&printf echo是Shell的一个内部指令,用于屏幕上打印出指定的字符串 显示转义字符:echo "\"It is a test\"" 换行显示echo "OK!...\n" echo "It is a test" 显示变量: name="OK" echo "$name It is a test" 显示结果重定向至文件: echo "It is a test" > myfile...输入重定向: 本来需要从键盘获取输入的命令会转移到文件读取内容:command < file 如果希望执行某个命令,但又不希望屏幕上显示输出结果,那么可以将输出重定向到/dev/null:$ command

1.5K31

Shell利剑之export、read和history

当输入的数据量多于变量的个数时,那么超出的数据将被赋值最后一个变量。例如: #!/bin/bash read -p "input your name!".../test.sh 解释:exec 3< test.txt执行重定向shell命令,将test.txt文件内容重定向到描述文件3。然后从3读取内容复制给变量var。最后关闭文件描述编号为3的内容。.../bin/bash count=1 while read line do echo "Line $count:($line)" let count=$count+1 done < test.txt echo...需要注意的是,shell脚本alias别名默认是关闭的,shell里面执行命令是重新生成一个子进程。所以你可以通过login 选项来设置。 #!...16 ## 高级点的用法是搜索曾经的命令 Ctrl+R history -c:清空所有的历史命令 history -w: 内存的历史命令覆盖.bash_history history的配置 #显示命令时间戳

94530

Linux 文件描述符详解

:~/test$ echo $user xlinsist vincent@geek:~/test$ 123456789 从上面的read命令可以看作,我并没有被要求输入什么。...现在让我们来个更加复杂的例子吧,来帮你们整理一下思路,脚本如下: exec 3>&1 exec 1>test echo "这句话被存到test文件" echo "还有这句" exec 1>&3 echo...接着两个echo命令的输出会自然去找文件描述符1,然后它看到文件描述符1指向的是test文件,所以它会把输出写到test文件。...整个过程就是这样的,只要你理解了它们的原理,以后无论脚本怎样处理重定向的你都不会感觉到迷茫了。下面我将介绍一些与文件描述符相关的一些shell命令,这可以让你如虎添翼。...我们可以把标准错误输出重定向到/dev/null,从而丢掉不想保存的错误信息 我们可以快速移除现有文件的数据而不用先删除文件创建。

2.4K30

【知识总结】Shell脚本编程入门

$- 显示Shell使用的当前选项,与set命令功能相同。 $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 #!...1.显示普通字符串: echo "It is a test" 这里的双引号完全可以省略,以下命令与上面实例效果一致: echo It is a test 2.显示转义字符 echo "\"It is a...test\"" 结果将是: "It is a test" 同样,双引号也可以省略 3.显示变量 read 命令从标准输入读取一行,并把输入行的每个字段的值指定给 shell 变量 #!...后台运行的最后一个进程的ID号 $@ 与$*相同,但是使用时加引号,并在引号返回每个参数。 $- 显示Shell使用的当前选项,与set命令功能相同。 $? 显示最后命令的退出状态。...标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流写入错误信息。

2.3K20

第三十一章 : 疑难排解

这个脚本产生了两个错误。有趣地是,所报告的行号不是引号被删除的地方,而是程序后面的文本行。我们能知道为什么,如果我们跟随丢失引号文本行之后的程序。...When the command: 我们得到一个相当神秘的错误信息,其后是第二个 echo 命令的输出结果。这问题是由于 test 命令 number 变量的展开结果造成的。...进一步说,因为 test 命令运行失败了(由于错误),这个 if 命令接收到一个非零退出代码,因此执行第二个 echo 命令。...一个脚本错误往往是由意想不到的逻辑流导致的。也就是说,脚本的一部分代码或者从未执行,或是以错误的顺序,或在错误的时间给执行了。...We can add messages to our code fragment: 一种追踪方法涉及到脚本添加可以显示程序执行位置的提示性信息。

26110

Linux基础(五)

命令错误,继续执行 脚本执行,语法错误,终止执行 bash -n 语法检查,但不检查命令错误 bash -x 查看执行过程,跟踪调试 pstree :查看进程树 pstree -p $$:可以查看当前进程.../bin/bash export name #name="son" echo "son pid is $$" echo "son.sh:name=$name" 结果:子进程的变量只子进程中有效 从上面的例子...set :显示出所有的变量包括一些函数 (7)删除变量 unset 变量名,... (8)显示上一条命令执行情况 echo $?...9、条件测试 判断某需求是否满足,需要有测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过程 评估布尔声明,以便用在条件执行 若真,则返回0 若假,则返回1 测试命令 test EXPRESSION...b c echo $b yyy -->echo $c zzz read m n l 12、bash如何展开命令行 把命令行分成单个命令词 展开别名 展开大括号的声明{} 展开波浪符声明~ 命令替换$

1.2K80

Linux-编写Shell的几个技巧

1 脚本添加注释 2 当运行失败时使脚本退出 3 当 Bash 用未声明变量时使脚本退出 4 使用双引号来引用变量 5 脚本中使用函数 6 字符串比较时用 而不是 7 用 command 而不是老旧的...注释用 # 号来定义 ---- 2、 当运行失败时使脚本退出 有时即使某些命令运行失败,bash 可能继续去执行脚本,这样就影响到脚本的其余部分(会最终导致逻辑错误)。.../test.sh: line 12: pwde: command not found ---- 3、 当 Bash 用未声明变量时使脚本退出 Bash 也可能会使用能导致起逻辑错误的未声明的变量。...为了脚本执行前易于修正一些错误,要进行一些调试。...通过阅读下面给出的指南来掌握此技巧 Linux 启用 Shell 脚本的调试模式 Shell 脚本执行语法检查调试模式 Shell 脚本中跟踪调试命令的执行

39720
领券