相关疑难解决方法(0)

使用sudo时如何保持环境变量

当我使用sudo的任何命令时,环境变量不存在.例如,在设置HTTP_PROXY之后,该命令wget可以正常工作sudo.但是,如果我键入sudo wget它说它无法绕过代理设置.

linux sudo environment-variables

395
推荐指数
5
解决办法
28万
查看次数

如何仅在脚本的持续时间内设置环境变量?

在bash上的Linux(Ubuntu 11.04)上,是否可以临时设置一个环境变量,该变量在脚本持续时间内只与普通变量不同?例如,在shell脚本中,通过临时将HOME设置为当前工作目录中的文件夹,然后启动应用程序,使应用程序保存到HOME便携式.

linux bash environment-variables

108
推荐指数
3
解决办法
9万
查看次数

为什么要在Bash中避免使用eval,我应该使用什么呢?

我一次又一次地看到Bash在Stack Overflow上使用eval的答案,并且答案得到了抨击,双关语是为了使用这种"邪恶"结构.为什么eval这么邪恶?

如果eval不能安全使用,我应该使用什么呢?

unix linux bash eval

94
推荐指数
3
解决办法
6万
查看次数

如果不匹配,如何在sed中添加一行

我使用以下sed命令替换配置文件中的一些参数:

sed -i 's/^option.*/option=value/g' /etc/fdm_monitor.conf
Run Code Online (Sandbox Code Playgroud)

现在我有一个问题.如果该行不存在,我想将其添加到文件的底部.

我用popen一个C程序来调用它.我试过用awk.

bash sed

40
推荐指数
3
解决办法
5万
查看次数

使用env在bash中为一个程序调用设置环境变量

我试图通过命令调用带有修改环境的shell命令env.

根据手册

env HELLO='Hello World' echo $HELLO
Run Code Online (Sandbox Code Playgroud)

应该回声Hello World,但事实并非如此.如果我做

HELLO='Hello World' bash -c 'echo $HELLO'
Run Code Online (Sandbox Code Playgroud)

Hello World按预期打印(感谢此信息的答案).

我在这里错过了什么?

干杯,尼克拉斯

unix bash environment environment-variables

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

将命令行参数传递给python-behave

我使用python-behave进行BDD测试,我必须从命令行传递一个URL(例如www.abc.com).

$behave -u "www.abc.com" 
Run Code Online (Sandbox Code Playgroud)

为了实现这一点,我已阅读了行为文档,但没有足够的材料以及为设置behave.ini文件而给出的解释.我也不确定behave.ini文件如何帮助我传递参数.

有人可以告诉我如何设置命令行参数的行为?

python bdd python-behave

18
推荐指数
2
解决办法
8929
查看次数

如何启动节点服务器并导出NODE_PATH(使用npm start或inline命令)

在启动服务器之前,我需要导出('设置'实际,我使用的是Win7)NODE_PATH变量.我尝试使用此命令(即使在命令行中也不工作):

set NODE_PATH=./ && node server.js
Run Code Online (Sandbox Code Playgroud)

并为package.json:

  "scripts": {
    "start": "set NODE_PATH=. && node server.js"
  },
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我得到的Error: Cannot find module只有NODE_PATH未指定才出现.

那么,这个问题怎么解决?我需要一种正确的方法来NODE_PATH使用内联命令导出和运行服务器,或者为"启动"脚本指定两个单独的命令.

shell command-line node.js npm package.json

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

在Tensorflow中限制GPU设备

我正在用Python开发一个使用Tensorflow的应用程序和另一个带有GPU的模型。我有一台拥有很多GPU(3xNVIDIA GTX1080)的PC,由于所有模型都尝试使用所有可用的GPU,从而导致OUT_OF_MEMORY_ERROR,我发现可以使用以下命令为Python脚本分配特定的GPU:

os.environ['CUDA_VISIBLE_DEVICES'] = '1'
Run Code Online (Sandbox Code Playgroud)

在这里,我附上我的FCN课程的摘要

class FCN:
  def __init__(self):
    os.environ['CUDA_VISIBLE_DEVICES'] = '1'
    self.keep_probability = tf.placeholder(tf.float32, name="keep_probabilty")
    self.image = tf.placeholder(tf.float32, shape=[None, IMAGE_SIZE, IMAGE_SIZE, 3], name="input_image")
    self.annotation = tf.placeholder(tf.int32, shape=[None, IMAGE_SIZE, IMAGE_SIZE, 1], name="annotation")

    self.pred_annotation, logits = inference(self.image, self.keep_probability)
    tf.summary.image("input_image", self.image, max_outputs=2)
    tf.summary.image("ground_truth", tf.cast(self.annotation, tf.uint8), max_outputs=2)
    tf.summary.image("pred_annotation", tf.cast(self.pred_annotation, tf.uint8), max_outputs=2)
    self.loss = tf.reduce_mean((tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits,
                                                                               labels=tf.squeeze(self.annotation,
                                                                                                 squeeze_dims=[3]),
                                                                               name="entropy")))
    tf.summary.scalar("entropy", self.loss)

...
Run Code Online (Sandbox Code Playgroud)

在同一个文件中FCN.py,我有一个使用该类的main,当Tensorflow打印输出时,我可以看到只使用了1个GPU,正如我期望的那样。

if __name__ == "__main__":
  fcn = FCN()
  fcn.train_model()

  images_dir = '/home/super/datasets/MeterDataset/full-dataset-gas-images/'
  for img_file in os.listdir(images_dir):
    fcn.segment(os.path.join(images_dir, img_file))
Run Code Online (Sandbox Code Playgroud)

输出:

2018-01-09 …
Run Code Online (Sandbox Code Playgroud)

python cuda gpu python-2.7 tensorflow

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

Git 索引和提交非常慢

我有一个本地 git 存储库,用于git add file1 file2 file3...将我的修改添加到 git 索引。之后我使用一个普通的git commit. 每个命令大约需要 3 到 6 秒。我的存储库有大约 150.000 次提交。

我已经执行了,git gc因为我认为它会执行一些垃圾收集。SSD 速度相当快。我想知道我可以在 git 中拧哪些螺丝来加速这两个命令的执行。有什么建议吗?

git version 2.21.0 (Apple Git-122.2)
Run Code Online (Sandbox Code Playgroud)

我的系统是带有 MacOS 的 Mac Pro 10.14.6。我使用带有APFS. 未安装防病毒软件(或任何其他干扰扫描软件)。

git

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

命令前的 Bash 变量赋值

前几天我遇到一个命令

AWS_ACCESS_KEY="foo" AWS_SECRET_KEY="bar" aws list iam
Run Code Online (Sandbox Code Playgroud)

我看到在命令之前设置变量会在命令的环境中添加这些变量:

#make sure there is no environment variable "foo"
$ echo $foo

#mimic-ing above command
$ foo=bar printenv | grep foo
foo=bar

#or trying from python environment
$foo=bar python -c "import os; print(os.getenv('foo', None))"
bar

#foo is destroyed now
$ echo $foo  
#<<NOTHING
Run Code Online (Sandbox Code Playgroud)

我试图使用这个技巧根据今天的日期动态创建一个新目录:

$ dname=$(date +%d_%m_%y) mkdir ${dname} && cd ${dname}
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

mkdir: missing operand
Try 'mkdir --help' for more information.
Run Code Online (Sandbox Code Playgroud)

dname=$(date +%d_%m_%y) echo $dname返回空!

我究竟做错了什么?如何在 bash 的同一行动态创建和使用变量?

bash environment-variables

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

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

当我做

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
查看次数