小编Wil*_*ell的帖子

在awk中使用bash变量

尝试将外部"CLIENT_ID"变量传递到此行的awk中,但它无法按预期工作.这就是我尝试过的:

CLIENT_ID=1
awk -v CLIENT_ID="${CLIENT_ID}" 'NF{print "xxx_${CLIENT_ID}_" $0 ".sh"}' A.csv > B.csv
Run Code Online (Sandbox Code Playgroud)

在A.csv

201712
201711
201710
Run Code Online (Sandbox Code Playgroud)

B.csv中的所需输出:

xxx_1_201712.sh
xxx_1_201711.sh
xxx_1_201710.sh
Run Code Online (Sandbox Code Playgroud)

我目前得到的:

xxx_${CLIENT_ID}_201712.sh
xxx_${CLIENT_ID}_201711.sh
xxx_${CLIENT_ID}_201710.sh
Run Code Online (Sandbox Code Playgroud)

bash awk

6
推荐指数
1
解决办法
43
查看次数

带有延迟加载模块的Angular Router面包屑

我正在使用Angular路由器动态添加面包屑。我遵循了几个示例,并让它们成功工作。

但是,如果尝试合并延迟加载的模块,则会收到错误消息:

Root segment cannot have matrix parameters
Run Code Online (Sandbox Code Playgroud)

我已经研究了该问题,但未能找到令人满意的信息/修复程序。

我用这个页面上要保存的大量代码创建了一个小工具:https : //plnkr.co/edit/505x2r

如何继续利用路由器中的动态面包屑创建功能,但同时也要使用延迟加载的路由。

import {NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';

import { RootComponent } from 'src/root/root.component';
import { IndexComponent } from 'src/index/index.component';
import { SignupComponent } from 'src/signup/signup.component';
import { SigninComponent } from 'src/signin/signin.component';

@NgModule({
    imports: [
        RouterModule.forChild([
            {
            path: '',
            component: RootComponent,
            children: [
                {
                    path: 'signin',
                    loadChildren: 'src/signin/signin.module#SigninModule'
                },
                {
                    path: 'signup',
                    component: SignupComponent,
                    data: {
                        breadcrumb: 'Sign Up'
                    }
                },
                {
                    path: '',
                    component: IndexComponent …
Run Code Online (Sandbox Code Playgroud)

lazy-loading breadcrumbs angular-ui-router angular

5
推荐指数
1
解决办法
5341
查看次数

如何以角度2获取YYYY-MM-DD格式的日期

我希望以下列格式获取日期:YYYY-MM-DD.

我基于这个问题在Angular2中写了一个日期服务: 如何在JavaScript中获取当前日期?.

我想检查它是否是正确的实现,或者是否有更好的方法来实现目标.

import { Injectable } from '@angular/core';

@Injectable()
export class DateService {
private currentDate = new Date();

    getCurrentDateInApiFormat(): string{
        let day:any = this.currentDate.getDate();
        let month:any = this.currentDate.getMonth() + 1;
        let year:any = this.currentDate.getFullYear();
        let dateInApiFormat: string;

        if(day<10){
           day = '0' + day.toString();
        }
        if(month<10){
            month = '0' + month.toString();
        }
        dateInApiFormat = day + '-' + month + '-' + year.toString();
        return dateInApiFormat;
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript date angular2-services angular

4
推荐指数
1
解决办法
1万
查看次数

正确地允许在bash中进行命令替换的分词

我编写,维护和使用健康数量的bash脚本.我认为自己是一个重击黑客,并努力有一天成为一个bash忍者(需要先了解更多awk).bash要理解的最重要的特征/挫折之一是引用和后续参数扩展如何工作.这是有据可查的,并且有充分的理由,在引用参数扩展和分词的神秘世界中存在许多陷阱,错误和新手陷阱.出于这个原因,建议是"双引用一切",但如果我想要分词发生怎么办?

多个 样式 指南中,我找不到在命令替换后安全和正确使用单词拆分的示例.

使用不带引号的命令替换的正确方法是什么?

例:

我不需要帮助让这个命令工作,但它似乎违反了已建立的模式,如果你想对这个命令给出反馈,请保留在评论中

docker stats $(docker ps | awk '{print $NF}' | grep -v NAMES)
Run Code Online (Sandbox Code Playgroud)

命令替换返回输出,例如:

container-1 container-3 excitable-newton
Run Code Online (Sandbox Code Playgroud)

这个单行使用命令替换来吐出每个正在运行的docker容器的名称,并使用单词拆分将它们作为docker stats命令的单独输入提供给它们,该命令采用任意长度的容器名称列表并返回一些信息关于他们.

如果我用过:

docker stats "$(docker ps | awk '{print $NF}' | grep -v NAMES)"
Run Code Online (Sandbox Code Playgroud)

将传递一行换行符分隔的容器名称docker stats.

这似乎是一个完美的例子,当我想要分词时,但是shellcheck不同意,这有点不安全吗?在扩展或替换之后是否存在使用分词的既定模式?

bash shell

3
推荐指数
1
解决办法
686
查看次数

将环境变量传递给多个命令

当我做

Hello=123 npm run a && npm run b && npm run c
Run Code Online (Sandbox Code Playgroud)

我期望Hello=123环境变量在a, b and c进程内传递。但是事实证明只有a正确设置了环境变量。

我还有其他方法可以一次传递所有参数吗?

unix shell

3
推荐指数
1
解决办法
759
查看次数