我想从脚本内部调用脚本,如下所示
weeknum=$(getweek )
这里 getweek 是一个脚本文件。如何编写子脚本文件,使其返回值到weeknum。我应该使用 return 或 exit 并将状态作为返回值
答案1
您可以很好地用于echo
此目的。
$ cat new
echo 1
$ number=$(./new)
$ echo $number
1
我认为这达到了目的。另请注意,new
上面是您要编写的脚本。
如果我错误地假设了什么,请在下面评论
答案2
语法$(cmd)
捕获标准输出of cmd
(删除尾随换行符)。
所以你所要做的就是输出getweek
信息:
#! /bin/sh -
date +%V # or %U or %W
date
在其继承自的 stdout 上输出周数sh
,在 的情况下,weeknum=$(getweek)
由 shell 将其设置为管道或套接字对,在其另一端,shell 读取该输出以存储在变量中weeknum
。
您还可以在退出状态中返回周数:
#! /bin/sh -
exit "$(date +%W)"
您可以通过以下方式获得:
getweek
weeknum=$?
但我建议不要这样做。退出状态应保留用于错误报告或限制为真/假值。
通常在上面,如果出现错误(在分叉进程、执行date
或 时sh
)或进程被终止,您将得到一个非零退出状态,不应将其视为周数。
答案3
你可以试试下面这个
output=$(sh <scriptname>)
我觉得在这种情况下,您也可以尝试在脚本中编写一个函数,这应该有助于实现您的目标。
答案4
使用任何命令将值赋给标准输出并读取它。
# 一些下标 # 做一点事 echo "my value is here" # echo 是一种将某些内容放入标准输出的方法
赋予执行权限。对于下标:
chmod a+rx 一些下标
并使用它
val=$(./some下标) echo "$val" # 将回显我的值在这里
return 和 exit 用于告诉调用者是否可以。不适用于返回值。