相关疑难解决方法(0)

Bash中的eval命令及其典型用法

阅读了bash手册页和关于这篇文章.

我仍然无法理解eval命令究竟是什么以及它的典型用途.例如,如果我们这样做:

bash$ set -- one two three  # sets $1 $2 $3
bash$ echo $1
one
bash$ n=1
bash$ echo ${$n}       ## First attempt to echo $1 using brackets fails
bash: ${$n}: bad substitution
bash$ echo $($n)       ## Second attempt to echo $1 using parentheses fails
bash: 1: command not found
bash$ eval echo \${$n} ## Third attempt to echo $1 using 'eval' succeeds
one
Run Code Online (Sandbox Code Playgroud)

这里究竟发生了什么,美元符号和反斜杠如何与问题相关联?

linux bash shell scripting eval

152
推荐指数
5
解决办法
33万
查看次数

$ {var}参数扩展表达式可以嵌套在bash中吗?

我有的是这个:

progname=${0%.*}
progname=${progname##*/}
Run Code Online (Sandbox Code Playgroud)

这可以嵌套(或不嵌套)成一行,即单个表达式吗?

我正在尝试从脚本名称中删除路径和扩展名,以便只保留基本名称.以上两行都运行正常.我的"C"性质只是让我更加混淆这些.

bash

59
推荐指数
9
解决办法
3万
查看次数

标签 统计

bash ×2

eval ×1

linux ×1

scripting ×1

shell ×1