小编ani*_*ish的帖子

从Java执行Shell脚本,Shell脚本具有读取操作

我有一个Shell Scripts来读取输入

#!/bin/bash
echo "Type the year that you want to check (4 digits), followed by [ENTER]:"
read year
echo $year  
Run Code Online (Sandbox Code Playgroud)

我正在使用JAVA APi执行这个shell脚本

ProcessBuilder pb = new ProcessBuilder("/bin/bash", "/junk/leaptest.sh");
final Process process = pb.start();

InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;


while ((line = br.readLine()) != null) {
    System.out.println(line);       
}
System.out.println("Program terminated!");
Run Code Online (Sandbox Code Playgroud)

在Java控制台中,我可以看到输出

键入要检查的年份(4位数),然后按[ENTER]:

现在问题如何在我的脚本中将值传递给Shell脚本如何读取变量"年份"


我根据建议编辑了代码,但在我们更正的地方不起作用

ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", "/junk/leaptest.sh");
final Process process = pb.start();
InputStream is = …
Run Code Online (Sandbox Code Playgroud)

java bash shell

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

Groovy 生成器支持

我如何使用 groovy builder 支持构建上述模式

emp = empFileFactory.root()
{
  emp(id: '3', value: '1')

  emp(id:'24')
  {
    emp(id: '1', value: '2')
    emp(id: '6', value: '7')
    emp(id: '7', value: '1')
  }

  emp(id: '25')
  {
    emp(id: '1', value: '1')
    emp(id: '6', value: '7')
  }

}
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 groovy 中构建上述结构,有人可以解释我如何实现这一点

dsl groovy closures

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

特殊角色逃脱

所有常规特殊字符#{\'} $ {"} /',需要在一个groovy字符串中由\替换为\

input  : anish$spe{cial
output : anish\$spe\{cial
input  : anish}stack{overflow'
output : anish\}stack\{overflow\'
Run Code Online (Sandbox Code Playgroud)

我用Java编写了一个示例程序,我想以更加流畅的方式

import java.util.regex.*;
import java.io.*;

/**
 * 
 * @author anish
 *
 */
public class EscapeSpecialChar {
    public static void main(String[] args) throws IOException {
        inputString();
    }
    private static void inputString() throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter string to find special characters: ");
        String string = in.readLine();
        // Escape the pattern
        string = escapeRE(string);  
        System.out.println("output: -- " + string);
    }

    // …
Run Code Online (Sandbox Code Playgroud)

groovy

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

OperationalError:无法打开数据库文件

Graphite抛出无法打开的数据库文件

tail -f /etc/httpd/logs/error_log 
Run Code Online (Sandbox Code Playgroud)

这是setting.py文件配置

DATABASES = {
  'default': {
    'NAME': '/opt/graphite/webapp/test.db',
    'ENGINE': 'django.db.backends.sqlite3',
    'USER': '',
    'PASSWORD': '',
    'HOST': '',
    'PORT': ''
  }
}
Run Code Online (Sandbox Code Playgroud)

DONE

python manage.py  syncdb
Run Code Online (Sandbox Code Playgroud)

该文件存在于以下位置

[root@bash  graphite]# ls -l /opt/graphite/webapp/test.db
-rw-rw-rw- 1 nobody nobody 65536 Nov 11 22:22 /opt/graphite/webapp/test.db
Run Code Online (Sandbox Code Playgroud)

它会抛出错误

[Tue Nov 11 22:24:15 2014] [error]   File "/usr/lib/python2.6/site-packages/django/db/backends/util.py", line 53, in execute
[Tue Nov 11 22:24:15 2014] [error]     return self.cursor.execute(sql, params)
[Tue Nov 11 22:24:15 2014] [error]   File "/usr/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py", line 452, in execute
[Tue Nov …
Run Code Online (Sandbox Code Playgroud)

python sqlite django graphite

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

没有名为defaults python django的模块

安装石墨后,访问URL时不会抛出名为defaults的模块

在此输入图像描述

我的Urls.py持有以下导入

from django.conf.urls import *
from django.conf import settings
from django.contrib import admin

admin.autodiscover()
Run Code Online (Sandbox Code Playgroud)

这是我的完整堆栈跟踪

Environment:


Request Method: GET
Request URL: http://10.105.202.72/

Django Version: 1.6.8
Python Version: 2.6.6
Installed Applications:
('graphite.metrics',
 'graphite.render',
 'graphite.cli',
 'graphite.browser',
 'graphite.composer',
 'graphite.account',
 'graphite.dashboard',
 'graphite.whitelist',
 'graphite.events',
 'django.contrib.auth',
 'django.contrib.sessions',
 'django.contrib.admin',
 'django.contrib.contenttypes',
 'tagging')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.gzip.GZipMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
  99.                 resolver_match = resolver.resolve(request.path_info)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in resolve
  337.             for pattern in self.url_patterns:
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in url_patterns
  365.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) …
Run Code Online (Sandbox Code Playgroud)

python django

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

方法Java的最大大小

我有一个java文件有一个非常大的方法,它编译成功,但运行后抛出java.lang.ClassFormatError:类文件中的无效方法代码长度72521

我研究vm规范文件JVM将方法的最大大小限制为65536字节.JVM规范提到了这个限制

这有什么工作吗?

java size methods max

0
推荐指数
2
解决办法
5857
查看次数

groovy singleton访问重载的构造函数

groovy Singleton(在Groovy 2.6中注意,如果要包含显式构造函数,必须将strict设置为false)

@Singleton( strict = false )
class test {

    private test(){
        //some Method call      
    }

    private test(def x){
        //some Method call
    }
}
Run Code Online (Sandbox Code Playgroud)

test.groovy

def test1 = test.instance
Run Code Online (Sandbox Code Playgroud)

当我发出以下声明时,它适用于我,我可以看到defualt构造函数被调用

如何在使用第二个construcor参数时创建instanace

如果我发出

def test2 = test("anish").instance 
Run Code Online (Sandbox Code Playgroud)

它抛出我的错误如何解决这个任何建议

groovy.lang.MissingMethodException: No signature of method: test.test() is applicable for argument types: (java.lang.String) values: [anish]
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:54)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151)
Run Code Online (Sandbox Code Playgroud)

groovy

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

Groovy使用单引号

如果我必须定义下面列出的变量,我可以使用'''使我的东西工作

def MainTable = '''
         0S : MAKE-CALL
         0# : MAKE-CALL
         00 : MAKE-CALL
         (=Emergency) : EMERGENCY-CALL(sip: "911 =domain =dialPhone)
         (=N11) : MAKE-CALL(sip: #1v =domain =dialString)
         (=SpeedDial) : MAKE-CALL(sip: #1v =domain =dialString)
         (=PhoneNumber) : MAKE-CALL(sip: #1v =domain =dialPhone)
         (=ImmediateVSCs) : RETURN
         (=DelayedVSCs) : RETURN
         (x{1-20})S : MAKE-CALL(sip: #1 =domain =dialPhone)
         (x{1-20})# : MAKE-CALL(sip: #1 =domain =dialPhone)''';
Run Code Online (Sandbox Code Playgroud)

相同的变量,如果我使用单引号定义这样,它会抛出我的错误

def MainTable = '
         0S : MAKE-CALL
         0# : MAKE-CALL
         00 : MAKE-CALL
         (=Emergency) : EMERGENCY-CALL(sip: "911 =domain =dialPhone)
         (=N11) : MAKE-CALL(sip: #1v …
Run Code Online (Sandbox Code Playgroud)

groovy

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

如何将现有的vpc导入到此模块

您好,我正在尝试使用 terraform 模块导入现有资源 terraform-aws-modules/vpc/aws

\n

这是我的模块定义

\n
module "vpc" {\n  source = "terraform-aws-modules/vpc/aws"\n\n  name = "eks-dev"\n  cidr = "10.0.0.0/16"\n\n  azs             = ["us-east-1b", "us-east-1a"]\n  public_subnets = ["10.0.2.0/24", "10.0.1.0/24"]\n\n  enable_nat_gateway = false\n  enable_vpn_gateway = false\n\n  tags = {\n    Terraform = "true"\n    Environment = "dev"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

当我执行计划时

\n
 # module.vpc.module.vpc.aws_vpc.this[0] will be created\n  + resource "aws_vpc" "this" {\n      + arn                                  = (known after apply)\n      + cidr_block                           = "10.0.0.0/16"\n      + default_network_acl_id               = (known after apply)\n      + default_route_table_id               = (known after apply)\n      + default_security_group_id …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform terraform-provider-aws

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

用于验证十六进制值的 Shell 脚本

如何在 shell 脚本中使用正则表达式验证给定的输入字符串是否为有效的十六进制值

例如:

Input var="ff:ff:fe:ff"
Run Code Online (Sandbox Code Playgroud)

有一个:分隔符值

我想将此正则表达式用于任何输入字符串

var = "ff:ff:fe:ff:fe"
var = "ff:ff:fe:ff:fe:fe:ff:ff"
\b0[xX][0-9a-fA-F]+\b



#!/bin/bash -x
var="fe:fe:fe:fe"
regex="/^([0-9A-F]+:?){4}$/"
if [[ $var =~ $regex ]]; then
echo "valid"
fi
Run Code Online (Sandbox Code Playgroud)

regex bash shell

-1
推荐指数
1
解决办法
4294
查看次数