我们举一些例子:
$ cat source.sh
#!/bin/bash
echo "I'm file source-1"
. source-2.sh
Run Code Online (Sandbox Code Playgroud)
和:
$ cat source-2.sh
#!/bin/bash
echo "I'm file source-2"
Run Code Online (Sandbox Code Playgroud)
现在运行:
$ ./source.sh
I'm file source-1
I'm file source-2
Run Code Online (Sandbox Code Playgroud)
如果我先改变第二个文件的调用:
$ cat source.sh
#!/bin/bash
echo "I'm file source-1"
source source-2.sh
Run Code Online (Sandbox Code Playgroud)
它会产生与使用相同的影响dot.
那么 - 这种方法有什么区别?谢谢.
在我的第一个CodeReview Q之后 - 我得到了回答:
您的代码似乎适用于Python 2.x. 为了更好地准备将来可能迁移到Python 3.x,我建议开始将print ...语句写为print(...)
因此,在我的下面的代码中(我在我的盒子上使用Python 2.6和2.7)我总是()为print:
print('Hello')
Run Code Online (Sandbox Code Playgroud)
今天我第一次用PyLint测试我的代码,它说:
C:43,0:'print'关键字后不必要的parens(多余的parens)
那么 - 确实print(str)是不正确的,或者我可以忽略这个PyLint消息?
我想使用Travis-CI和Github基于分支机构进行部署.
即 - 如果我们使用develop- 然后/deploy.rb使用DEV env主机名执行构建,如果master- 然后./deploy.rb使用PROD主机名,依此类推.
我发现只有一个想法 - 检查$TRAVIS_BRANC变量然后执行脚本,如:
language: php
install:
- true
script:
- test $TRAVIS_BRANCH = "develop" && ./ci/deploy.rb envdev.tld
- test $TRAVIS_BRANCH = "master" && ./ci/deploy.rb envprod.tld
Run Code Online (Sandbox Code Playgroud)
但对我来说,这个解决方案看起来有点奇怪.还有其他可能的事情吗?
任何提示/链接赞赏.
抱歉这么无辜的问题 - 我只是试着去...
例如 - 我有:
$ cat test.sh
#!/bin/bash
declare -f testfunct
testfunct () {
echo "I'm function"
}
testfunct
declare -a testarr
testarr=([1]=arr1 [2]=arr2 [3]=arr3)
echo ${testarr[@]}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到:
$ ./test.sh
I'm function
arr1 arr2 arr3
Run Code Online (Sandbox Code Playgroud)
所以这是一个问题 - 我必须(如果必须......)插入declare这里?随着它 - 或没有它它的工作原理相同......
我可以理解例如declare -i var或declare -r var.但是对于什么是-f(声明函数)和-a(声明数组)?
感谢您的提示和链接.
出于好奇而编写一些C代码,我想将MySQL连接的某些值移动到某种类型const.
问题1 在预处理器宏中存储主机,用户等是一个好主意吗?即:
#include <my_global.h>
#include <mysql.h>
#define DB_HOST "mysqlhost.com"
#define DB_USER "mysqlusername"
#define DB_TABLE "tablename"
...
Run Code Online (Sandbox Code Playgroud)
以后要用它们mysql_real_connect(con, DB_HOST, DB_USER, DP_PASS, DB_NAME, 0, NULL, 0) == NULL)
吗?
问题2
我可以DB_TABLE在带引号的字符串中使用值吗?即mysql_query(con, "SELECT * FROM DB_TABLE")
如果是这样 - 在这里使用它的方法是什么?
尝试安装psutils导致严重的头痛...
$ python -V
Python 2.4.2
$ cat /etc/SuSE-release
SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
PATCHLEVEL = 4
$ cd psutil-2.1.1/
$ python setup.py install
Traceback (most recent call last):
File "setup.py", line 17, in ?
from distutils.core import setup, Extension
ImportError: No module named distutils.core
Run Code Online (Sandbox Code Playgroud)
下一步-我尝试安装setuptools使用easy_install:
$ which easy_install
which: no easy_install
$ cd ../setuptools-1.4/
$ python setup.py install
Traceback (most recent call last):
File "setup.py", line 12, in ? …Run Code Online (Sandbox Code Playgroud) 似乎都做了完全相同的动作.
两种情况下都是空的$var回报defaultvalue:
$ var=
$ echo ${var:-defaultvalue}
defaultvalue
$ var=
$ echo ${var:=defaultvalue}
defaultvalue
Run Code Online (Sandbox Code Playgroud)
在两种情况下,非空$var返回它的值:
$ var=var
$ echo ${var:-defaultvalue}
var
$ var=var
$ echo ${var:=defaultvalue}
var
Run Code Online (Sandbox Code Playgroud)
$var根本没有设置 - defaultvalue在两种情况下都返回:
$ unset var
$ echo ${var:-defaultvalue}
defaultvalue
$ unset var
$ echo ${var:=defaultvalue}
defaultvalue
Run Code Online (Sandbox Code Playgroud) 我需要为每个进程线程获取CPU%.
所以,我创建了简单的脚本:
import psutil
from psutil import Process
p = psutil.Process(4499)
treads_list = p.get_threads()
for i in treads_list:
o = i[0]
th = psutil.Process(o)
cpu_perc = th.get_cpu_percent(interval=1)
print('PID %s use %% CPU = %s' % (o, cpu_perc))
Run Code Online (Sandbox Code Playgroud)
以下是此过程的TOP样式:
4942 teamcity 20 0 3288m 831m 3124 R 33.3 10.6 10303:37 java
32700 teamcity 20 0 3288m 831m 3124 S 5.9 10.6 18:49.99 java
5824 teamcity 20 0 3288m 831m 3124 S 5.9 10.6 1:57.90 java
4621 teamcity 20 0 3288m 831m …Run Code Online (Sandbox Code Playgroud) 需要创建简单的mysql-backup脚本.
但是 - 如何在其中存储MySQL用户的加密传递?
我想避免在任何其他文件中以明文类型存储密码.
正如我在MySQL手册中找到的:
MySQL使用自己的算法加密存储在用户表中的密码
所以.没有办法获得hash并将其设置为变量?
我的意思是:
DBHASH="cGFzc3dvcmQ="
DBPASS=`echo $DBHASH | openssl enc -base64 -d`
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来解决它?谢谢你的提示.
我有工具,其中使用了一些继承的类.
这是我的第一个基于OOP的大工具,我对类初始化有点困惑.
下面有很多代码,使这个Q更加清晰.
短继承树:
- RDSmanager(object)
- Options(RDSmanager)
- AutoEnv(RDSmanager)
- UnityXMLgenerator(RDSmanager)
Run Code Online (Sandbox Code Playgroud)
完全记录器类是:
class Logger(object):
def __init__(self, rdsmanager_localpath):
"""Create Logger"""
self.rdsmanager_localpath = rdsmanager_localpath
if not os.path.isdir(os.path.join(self.rdsmanager_localpath, 'logs')):
os.mkdir(os.path.join(self.rdsmanager_localpath, 'logs'))
def logger(self, modname):
self.logger = logging.getLogger(modname)
formatter = logging.Formatter('%(asctime)s - %(filename)s[LINE:%(lineno)d] - %(name)s.%(funcName)s() - %(message)s')
self.logger.setLevel(logging.DEBUG)
filehandler = logging.FileHandler(os.path.join(self.rdsmanager_localpath, 'logs', 'rdsmanager.log'))
filehandler.setLevel(logging.DEBUG)
filehandler.setFormatter(formatter)
consolehandler = logging.StreamHandler()
consolehandler.setLevel(logging.INFO)
self.logger.addHandler(filehandler)
self.logger.addHandler(consolehandler)
Run Code Online (Sandbox Code Playgroud)
主脚本RDSmanager.py包含:
from lib.local.rds_services import Logger
...
class RDSmanager(object):
...
# path to current RDSmanager directory
# used toi …Run Code Online (Sandbox Code Playgroud)