typeset

如何扩展包含以下内容的字符串中的变量
typeset

如何扩展包含以下内容的字符串中的变量

我有一个 bash 函数,我检索其主体并扩展其中的变量。 这是我的 bash 脚本中的代码: my_var=my_value my_fn() { echo $myvar } 什么typeset -f my_fn给了我: my_fn() { echo $myvar } 我需要的 : my_fn() { echo my_value } 如何扩展 my_fn 中出现的变量?如果需要,我可以将结果存储在字符串或函数中。 我无法手动扩展所有变量,因为函数可能使用很多变量。我也无法使用,envsubst因为变量未导出。 解决我的问题的方法是...

Admin

zsh:变量无故取消设置
typeset

zsh:变量无故取消设置

不知怎的,v在调用后会被取消设置f。 $ zsh -xc 'v=1; f() { local v; v=2 true; }; f; typeset -p v' +zsh:1> v=1 +zsh:1> f +f:0> local v +f:0> v=2 +f:0> true +zsh:1> typeset -p v zsh:typeset:1: no such variable: v 这里是要旨我的原始复制报告。 我做到了电子邮件[电子邮件受保护],但我还没有收到任何回复。 ...

Admin

当我通过 crontab 启动脚本时出现错误排版:未找到?
typeset

当我通过 crontab 启动脚本时出现错误排版:未找到?

我使用这部分代码在 script.sh 的配置中设置默认值 # Copyright (c) 2015 # Licence MIT ( http://choosealicense.com/licenses/mit/ ). #!/bin/sh typeset -A config # init array config=( # set default values in config array # chemin du dossier de log [log]=$SCRIPTPATH"/logs" # chemin du dossie...

Admin

成语 `ssh ... "$(typeset -f foo); foo"` 有多安全?
typeset

成语 `ssh ... "$(typeset -f foo); foo"` 有多安全?

假设foo在当前 shell 会话中定义了某个 shell 函数。然后命令 typeset -f foo 打印出该函数的源代码。这意味着,至少在原则上,人们可以通过ssh如下所示在远程主机上执行此功能: ssh <REMOTE-HOST> "$(typeset -f foo); foo" (出于本问题的目的,假设 中提到的所有命令和文件系统路径foo都可用<REMOTE-HOST>。此外,假设bash两端都是 shell。) 我的直觉是,盲目地获取一些像这样自动生成的源代码将是非常脆弱的,但我无法提出foo这个习惯用法失...

Admin

ksh93 中的排版未按预期工作
typeset

ksh93 中的排版未按预期工作

我以为typeset是ksh's local,但这失败了,ksh93 尽管它在我所有其他typeset支持 shell(bash、yash、zsh、pdksh)中都有效 #!/bin/ksh -ex foo(){ typeset a b a=0; b=1 return } a=a; b=b foo #confirm that the globals didn't change [ "$a" = a ] [ "$b" = b ] 是什么赋予了? ...

Admin

带有此处字符串的 ksh 类型
typeset

带有此处字符串的 ksh 类型

我想将 Here String 与 KSH 中的自定义类型结合使用。不幸的是,我无法说出我做错了什么。 #!/bin/ksh typeset -T Type_t=( typeset string='aaa' function fc { cat <<< ${_.string} } ) Type_t t t.fc 给我 script.ksh[10]: ct.fc[5]: cat: not found [No such file or directory] 这不是打印内容的问题,我感兴趣的是在 cat ...

Admin

bash shell 函数中存在循环名称引用,但 ksh 中没有
typeset

bash shell 函数中存在循环名称引用,但 ksh 中没有

我正在编写一组 shell 函数,希望它们能够在 Bash 和 KornShell93 中工作,但是在使用 Bash 时,我遇到了“循环名称引用”警告。 这就是问题的本质: function set_it { typeset -n var="$1" var="hello:$var" } function call_it { typeset -n var="$1" set_it var } something="boff" call_it something echo "$something" 运行它: $ k...

Admin

新答案使用%08.0f
typeset

新答案使用%08.0f

我正在尝试将零填充到数字 a=010 printf "%04d" $a 0008 我需要“输出”为“0010”,它正在转换值。 甚至尝试过排版 a=010 typeset -RZ2 a echo $a 当我在脚本中使用相同的内容时,出现以下错误: Invalid -R option ...

Admin

typeset -A 在脚本中给出错误
typeset

typeset -A 在脚本中给出错误

我在脚本中使用关联数组,因此我曾经通过 typeset -A <array_name>命令,并且在 bash 提示符下运行良好 但是当我在脚本中使用它时,出现以下错误 typeset: -A: invalid option typeset: usage: typeset [-afFirtx] [-p] name[=value] ... 我也可以接受替代解决方案。 旁注:我尝试了 typeset -a 但它声明了一个索引数组。但我想要一个关联数组。 ...

Admin

ksh 中的排版和返回状态
typeset

ksh 中的排版和返回状态

我希望能够将本地变量声明为命令的结果,并且能够捕获命令的返回状态。 像这样的东西: #!/bin/ksh typeset -r command_output=$(command) typeset -r return_status=$? echo "$return_status" # always 0 上面代码片段的问题是 return_status 将始终为 0,即使命令以另一个状态代码退出也是如此。 有人可以帮助我吗? ...

Admin

在 bash 中创建数组,并使用变量作为数组名称
typeset

在 bash 中创建数组,并使用变量作为数组名称

我不确定这个问题是否已得到解答,我已经看过但没有找到任何看起来像我想做的事情。 我有许多能够针对 ksh 或 bash shell 运行的 shell 脚本,并且它们使用数组。我创建了一个名为“setArray”的函数,它询问正在运行的 shell 并确定使用什么内置函数来创建数组 - 对于 ksh,set -A,对于 bash,typeset -a。但是,我在 bash 部分遇到一些问题。 该函数有两个参数:数组的名称和要添加的值。然后这将变为 ${ARRAY_NAME} 和 ${VARIABLE_VALUE}。执行以下操作: set -A $(ev...

Admin