小编Ben*_* W.的帖子


使用换行符将内容文件转换为unix变量

我有一个文本文件test.txt,其中包含以下内容:

text1
text2 
Run Code Online (Sandbox Code Playgroud)

我想将文件的内容分配给UNIX变量,但是当我这样做时:

testvar=$(cat test.txt)
echo $testvar
Run Code Online (Sandbox Code Playgroud)

结果是:

text1 text2
Run Code Online (Sandbox Code Playgroud)

代替

text1
text2 
Run Code Online (Sandbox Code Playgroud)

有人可以建议我解决这个问题吗?

unix bash

98
推荐指数
4
解决办法
10万
查看次数

98
推荐指数
8
解决办法
17万
查看次数

在sudo调用的Bash脚本中标识用户

如果我创建/root/bin/whoami.sh包含以下内容的脚本

#!/bin/bash
whoami
Run Code Online (Sandbox Code Playgroud)

并且这个脚本由具有正确配置的sudo的用户调用,它将指示

root
Run Code Online (Sandbox Code Playgroud)

有没有快速的方法来获取脚本中的实际用户,还是我必须求助于传递此用户名的参数?

linux bash sudo

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

如何加载程序读取stdin并在gdb中获取参数?

我有一个程序从stdin获取输入,并从命令行获取一些参数.它看起来像这样:

cat input.txt > myprogram -path "/home/user/work"
Run Code Online (Sandbox Code Playgroud)

我尝试使用gcs在emacs中调试代码,通过Mx gdb,我尝试使用以下命令加载程序:

gdb cat input.txt > myprogram -path "/home/user/work"
Run Code Online (Sandbox Code Playgroud)

但是,gdb不喜欢它.

问题来自这里.不幸的是我不理解解决方案,并且不确定除了使用该-g选项进行编译并运行命令Mx gdb 之外还要做什么.

emacs redirect gdb command-line-arguments

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

使用bash脚本cd到pathname中包含空格的目录

我在macOS X上使用Bash,我想创建一个简单的可执行脚本文件,当它运行时会改变到另一个目录.但是,该目录的路径中包含空格.你怎么做到这一点?这就是我所拥有的......

文件名称: cdcode

文件内容:

cd ~/My Code
Run Code Online (Sandbox Code Playgroud)

现在被授予,这不是一个长路径名,但我的实际路径名是深五个目录,其中四个目录在路径中有空格.

顺便说一句,我已经试过cd "~/My Code"cd "~/My\ Code"和这些都不奏效.

bash escaping

84
推荐指数
6
解决办法
13万
查看次数

重命名文件名的一部分

我有大量的文件,如下所示:

DET01-ABC-5_50-001.dat
...
DET01-ABC-5_50-0025.dat
Run Code Online (Sandbox Code Playgroud)

我希望它们看起来像这样:

DET01-XYZ-5_50-001.dat
...
DET01-XYZ-5_50-0025.dat
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

bash filenames rename

83
推荐指数
4
解决办法
9万
查看次数

Bash:在命令行上指定echo的环境变量?

请考虑以下代码段:

$ SOMEVAR=AAA
$ echo zzz $SOMEVAR zzz
zzz AAA zzz
Run Code Online (Sandbox Code Playgroud)

在这里,我设置$SOMEVARAAA第一线-当我赞同它的第二行,我得到的AAA内容符合市场预期.

但是,如果我尝试在同一命令行上指定变量echo:

$ SOMEVAR=BBB echo zzz $SOMEVAR zzz
zzz AAA zzz
Run Code Online (Sandbox Code Playgroud)

......我没有BBB按照我的预期得到 - 我得到旧值(AAA).

这是事情应该如何?如果是这样,那么为什么你可以指定变量LD_PRELOAD=/... program args ...并让它工作?我错过了什么?

bash environment-variables echo

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

在Bash中将命令的输出读入数组

我需要将脚本中的命令输出读入数组.该命令例如是:

ps aux | grep | grep | x 
Run Code Online (Sandbox Code Playgroud)

并且它按行给出输出,如下所示:

10
20
30
Run Code Online (Sandbox Code Playgroud)

我需要将命令输出中的值读入数组,然后如果数组的大小小于3,我将做一些工作.

arrays bash

83
推荐指数
3
解决办法
11万
查看次数

shell脚本中的全局环境变量

如何在bash脚本中设置全局环境变量?

如果我喜欢的话

#!/bin/bash
FOO=bar
Run Code Online (Sandbox Code Playgroud)

...要么

#!/bin/bash
export FOO=bar
Run Code Online (Sandbox Code Playgroud)

... vars似乎停留在本地环境中,而我希望在脚本执行完毕后继续使用它们.

shell scripting environment-variables

81
推荐指数
3
解决办法
13万
查看次数