在脚本中扩展Shell变量

时间:2018-10-27 03:24:24

标签: bash shell variables syntax

如果我在自己的环境中定义了存档文件夹并导出了它,该如何在shell脚本中访问它并运行程序?

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
                .withUser("admin")
                    .password("pwd")
                    .roles("USER", "ADMIN");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http
            .httpBasic()
                .and()
            .authorizeRequests()
                .antMatchers(HttpMethod.GET, "/users").hasAnyRole("ADMIN", "USER")
                .anyRequest().permitAll()
                .and()
            .authorizeRequests()
                .anyRequest().hasAnyRole("ADMIN", "USER");
    }
}

当前,我的prob1包含以下代码,当我尝试运行时收到错误消息。

ARCHIVE=/home/kschmidt/public_html/CS265/Assignments/DrMath/Archive
export ARCHIVE
./prob1

2 个答案:

答案 0 :(得分:1)

您可以通过在Shell变量前面加上$来扩展shell变量,并使用echoprintf命令进行打印-shell没有print命令:< / p>

echo "$ARCHIVE"

printf '%s\n' "$ARCHIVE"

顺便说一句,在脚本中使用相对路径(如./prob1)不是很好,除非您明确地cd指向存在prob1的目录。因此,要么:

  • 在使用相对路径调用脚本目录之前,对脚本目录进行显式cd

  • 使用绝对路径(如/ path / to / prob1)

相关:

答案 1 :(得分:0)

prob1的代码应类似于:

#!/bin/bash
bash $ARCHIVE

然后prob1像这样运行:

bash prob1

我希望有帮助。