相关疑难解决方法(0)

983
推荐指数
17
解决办法
68万
查看次数

在shell脚本中没有换行符的'echo'

echo我的脚本中有问题:

echo -n "Some string..."
Run Code Online (Sandbox Code Playgroud)

版画

-n Some string...
Run Code Online (Sandbox Code Playgroud)

并移动到下一行.在控制台中,它正确地工作而没有换行:

Some string...
Run Code Online (Sandbox Code Playgroud)

shell command-line sh

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

为什么#!/ usr/bin/env bash优于#!/ bin/bash?

我在很多地方看到过,包括对这个网站的推荐(什么是首选的Bash shebang?),#!/usr/bin/env bash优先使用#!/bin/bash.我还看过一个进取的个人建议使用#!/bin/bash错误的和bash的功能会这样做会丢失.

总而言之,我在严格控制的测试环境中使用bash,其中每个循环驱动器基本上都是单个主驱动器的克隆.我理解可移植性论点,虽然它不一定适用于我的情况.是否有任何其他理由更喜欢#!/usr/bin/env bash替代品,并且假设可移植性是一个问题,是否有任何理由使用它可能会破坏功能?

bash shebang

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

无法使用"#!/ usr/bin/env python"将参数传递给python

我需要一个可直接执行的python脚本,所以我用它启动了该文件#!/usr/bin/env python.但是,我也需要无缓冲输出,所以我试过#!/usr/bin/env python -u,但是失败了python -u: no such file or directory.

我发现#/usr/bin/python -u的作品,但我需要它来获得pythonPATH支持虚拟env环境.

我有什么选择?

python arguments shebang

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

Bash 4关联数组:错误"声明:-A:无效选项"

我编写了一个在bash(v 4)中使用关联数组的脚本.

它在我正在使用的本地机器上工作正常4.1.5(1)-release.

在生产计算机上,使用4.1.0(1)-release以下行声明assoc数组失败:

declare -A uniqjars
Run Code Online (Sandbox Code Playgroud)

随着消息:

/script.sh: line 11: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
Run Code Online (Sandbox Code Playgroud)

我觉得这是一个普通的bash 4功能?

在生产机器上bash的人讨论使用,-A所以我认为它应该工作.

使用关联数组创建 .declare -A name

我可以通过打印出值来确认脚本是否正在使用正确版本的bash echo 'bash -version.

我能做错什么?

bash associative-array

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

crontab 和手动运行脚本的结果不同

我有一个执行此操作的 bash 脚本:

nmap -sn 192.168.0.1-255 | grep -Eo 192.168.0.{1,3\}[0-9] > new.txt
date >> network_log
echo ---------------------------- >> network_log
cat new.txt >> network_log
Run Code Online (Sandbox Code Playgroud)

扫描网络,并将结果附加到带有时间戳的文件 network_log。手动运行后,network_log 文件如下所示:

Tue 13 Sep 2016 11:22:23 EDT 
---------------------------- 

192.168.0.1
192.168.0.2 
192.168.0.45
Run Code Online (Sandbox Code Playgroud)

而 cronjobs 在我的 network_log 文件中产生以下输出:

Tue Sep 13 17:46:00 EDT 2016
----------------------------
Run Code Online (Sandbox Code Playgroud)

没有ip结果。注意:cronjob 是从 root 用户运行的,因此它具有扫描整个网络所需的所有提升。

bash cron network-programming nmap

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