我正在运行一个bash脚本(test.sh),它加载到环境变量(来自env.sh).这工作正常,但我试图看到python可以加载已经在bash脚本中的变量.
是的我知道传递我需要的特定变量作为参数可能更容易,但我很好奇是否有可能获得bash变量.
test.sh
#!/bin/bash
source env.sh
echo $test1
python pythontest.py
Run Code Online (Sandbox Code Playgroud)
env.sh
#!/bin/bash
test1="hello"
Run Code Online (Sandbox Code Playgroud)
pythontest.py
?
print test1 (that is what I want)
Run Code Online (Sandbox Code Playgroud) 我有一个程序,成功上传我需要的所有文件.我每天都有新文件需要上传.我上传文件后,我不再需要它们,因此我不想同步它们.
我很好奇是否有办法检查是否给出了路径和文件名,如果在S3中使用s3cmd存在.
有没有办法读取环境变量的文件?
在bash中我有一个我可以使用的文件env.sh
env.sh
foo="bar"
Run Code Online (Sandbox Code Playgroud)
bash文件
set -a
source env.sh
Run Code Online (Sandbox Code Playgroud)
这将允许我只使用foo,就像我在ruby脚本中对它进行了删除一样.
还有一种方法可以确保此文件不可读,以便密码可以存储在此文件中吗?
目前我正在使用Amazon Web Services(AWS)并打开S3存储桶,将其内容保存到EC2中的目录,然后从该目录中的所有内容创建tar文件并将该tar文件推送到AWS Glacier.我试图完成的最后一步是在tar文件成功上传到AWS Glacier时需要终止脚本(需要3-5个小时).
目前,我很难理解如何获取archive_id并询问保险库是否已成功加载tar文件.
要与AWS Glacier交互,我一直在使用python boto工具.我包含了将文件上传到冰川的python\boto代码以及我试图运行的一些快速测试,以确定代码是否已成功上传.到目前为止,所有测试都返回错误.
我排除了一些关于status_code的测试,这些测试也为所有内容返回false,当我尝试打印出任何这些时,只有未完成和正在进行中(正如预期)打印出任何内容,但是当我尝试匹配archive_id时或者retrieve_job到工作列表中返回的内容我没有匹配.另外一个注释是打印时保存的列表,它们都是相同的(Job(arn:aws:glacier:us-east-1:232412618534:vaults/glacier-poc))
如何在工作完成后返回true?
import boto
import sys
ACCESS_KEY_ID = "..."
SECRET_ACCESS_KEY = "..."
FILENAME = sys.argv[1]
GLACIER_VAULT_NAME = sys.argv[2]
connection = boto.connect_glacier(aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=SECRET_ACCESS_KEY)
vault = connection.get_vault(GLACIER_VAULT_NAME)
archive_id = vault.upload_archive(FILENAME)
open("glacier.txt", "a").write(FILENAME + " " + archive_id + "\n")
retrieve_job = vault.retrieve_archive(archive_id)
a = vault.list_jobs(completed=True)
b = vault.list_jobs(completed=False)
print "Is In Completed List"
print archive_id in a
print "Is In NOT Completed List"
print archive_id in b
print "Is In Completed List"
print …Run Code Online (Sandbox Code Playgroud) 所以我很困惑,如果在Java枚举中可以有功能.我正在制作一个简单的html编辑器,并希望使用枚举来表示html标签,是的我知道这不是最好的方法,但它是我的小组决定实现它的方式.
所以,我一直在试图做这样的事情,但是当我尝试调用TagEnums.normalTags()它表明使它成为一个静态方法,我想我不知道这是否正确或是否有更好的方式来实现,而不是把它公开ArrayList<String> normalTags()到public static ArrayList<String> normalTags()
public enum TagEnum {
H1, H2, H3, H4, H5, H6, P, B, I, U, BR, HR, RP, RT, RUBY
public ArrayList<String> normalTags(){
String normalTags = "H1, H2, H3, H4, H5, H6, P, B, I, U";
ArrayList<String> tags = new ArrayList<String>();
for(Enum<?> currentEnum: TagEnum.values()){
if(normalTags.contains(currentEnum.toString())){
tags.add("<"+currentEnum.toString().toLowerCase()+">");
tags.add("</"+currentEnum.toString().toLowerCase()+">");
}
}
return tags;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个调用python脚本的bash脚本.起初我只是返回一个变量,这很好,但现在我被告知返回两个变量,我想知道是否有一个简洁的方法来返回多个变量.
archiveID=$(python glacier_upload.py $archive_file_name $CURRENTVAULT)
Run Code Online (Sandbox Code Playgroud)
我是用bash打电话的
print archive_id['ArchiveId']
archive_id['ArchiveId']
Run Code Online (Sandbox Code Playgroud)
这会将归档ID返回给bash脚本
通常我知道你可以在python中使用return语句来返回多个变量,但是它只是一个脚本,就像我发现返回变量一样.我可以使它成为一个被调用的函数,但即便如此,我将如何收到我将要传回的多个变量?
有一个文件具有控制B和控制C命令分隔文本字段.看起来像:
"TEST\003KEY\002TEST\003KEY"
Run Code Online (Sandbox Code Playgroud)
我试图创建一个与此匹配的正则表达式并将其删除.我不确定为什么这个正则表达式不起作用:
"TEST\003KEY\002TEST\003KEY".gsub(/\00[23]/, ',')
Run Code Online (Sandbox Code Playgroud) 我已经设计了一个验证了的Rails项目。我进入编辑用户页面时遇到问题。
发生什么情况是当我手动转到/users/1/edit可以看到编辑页面时。尽管我似乎无法弄清楚放入代码的途径。当我查看路线时,看起来我所要做的就是edit_user_path。虽然这带给我了/user/1/edit。哪个不正确,不起作用。我试图做edit_users_path那只是失败了。
这是我的路线文件
devise_for :users
resources :users, :only => [:show, :edit, :update ]
resources :users, :controller => "users"
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激