bash – 1:找不到命令
发布时间:2020-12-16 01:46:25 所属栏目:安全 来源:网络整理
导读:我正在 Bash中编写一个divides-by-three函数,它不会让我将变量设置为数字. fizzy.sh: #!/usr/bin/env shdiv3() { return `$1 % 3 -eq 0`}d=div3 1echo $d 例: $./fizzy.sh ./fizzy.sh: line 7: 1: command not found 解决方法 Bash函数通常通过将值打印到
我正在
Bash中编写一个divides-by-three函数,它不会让我将变量设置为数字.
fizzy.sh: #!/usr/bin/env sh div3() { return `$1 % 3 -eq 0` } d=div3 1 echo $d 例: $./fizzy.sh ./fizzy.sh: line 7: 1: command not found 解决方法
Bash函数通常通过将值打印到标准输出来“返回”值,调用者可以使用它来捕获它们
`func args ...` 要么 $(func args ...) 这使得函数像外部命令一样工作. 另一方面,return语句设置$?的值.通常情况下,将成功设置为0,失败设置为1,或者指定类型的故障设置为其他值.将其视为状态代码,而不是一般值.这可能只支持0到255之间的值. 试试这个: #!/bin/sh div3() { expr $1 % 3 = 0 # prints "0" or "1" } d=$(div3 1) echo $d 请注意,我还将shebang line从#!/usr/bin/env sh更改为#!/ bin / sh. #!/usr/bin/env技巧通常在调用您想要通过$PATH定位的解释器(例如perl)时使用.但在这种情况下,sh将始终位于/ bin / sh中(如果不是,系统将以各种方式中断).编写#!/usr/bin/env sh的唯一理由是,如果你想使用在$PATH中首先出现的sh命令而不是标准命令.即使在这种情况下,您可能更好地直接指定sh的路径. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |