相关疑难解决方法(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万
查看次数

在sh shell中找不到source命令

我有一个使用shshell 的脚本.我在使用该source命令的行中出错.它似乎source没有包含在我的shshell中.

如果我明确尝试source从shell 运行我得到:

sh: 1: source: not found
Run Code Online (Sandbox Code Playgroud)

我应该以某种方式安装"源"?我的版本有错sh吗?

bash shell sh

123
推荐指数
7
解决办法
19万
查看次数

如何在 Shell 脚本中访问变量

我目前被困在如何执行以下操作上:

我有一个settings看起来像这样的文件:

USER_ID=12
ROLE=admin
STARTED=10/20/2010
...
Run Code Online (Sandbox Code Playgroud)

我需要访问角色并将角色映射到下面脚本中的变量之一。在我将使用该变量调用打开具有正确名称的文档之后。

测试文件

#!/bin/sh

ADMIN=master_doc
STAFF=staff_doc
GUEST=welcome_doc    

echo "accessing role type"
cd /setting

#open `settings` file to access role?
#call correct service
#chmod 555 master_doc.service 
Run Code Online (Sandbox Code Playgroud)

有没有办法像javascript一样使用bash插入字符串?另外,我猜我需要遍历设置文件才能访问角色?

bash

0
推荐指数
1
解决办法
126
查看次数

标签 统计

bash ×3

shell ×2

eval ×1

linux ×1

scripting ×1

sh ×1