Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

2
从脚本外部抑制bash执行跟踪(设置-x)
我试图找到这个问题的答案,但到目前为止还没有运气: 我有一个运行其他脚本的脚本,其中许多其他脚本中都带有“ set -x”,这使它们可以打印执行的所有命令。我想摆脱它,但是如果任何脚本将错误消息发送到stderr,则保留信息。 所以我不能简单地写 ./script 2>/dev/null 另外,我没有编辑其他脚本的特权,因此无法手动更改set选项。 我正在考虑记录从stderr到单独文件的所有内容,并过滤掉跟踪命令,但是也许有更简单的方法吗?
17 bash  shell  set 

2
如何避免字符串中bash变量后面的空格?
我有一个颜色变量。我用它通过在字符串内部求值来为字符串设置颜色。但是,我需要在名称后添加空格(以便名称不包含文本的一部分)。有时候看起来很糟。 如何避免使用(打印)该空间? 示例(假设Red=1和NC=2): echo -e "$Red Note: blabla$NC". 输出: 1 Note: blabla2. 预期产量: 1Note: blabla2.

3
程序如何确定是否有彩色输出?
从打印彩色输出的终端(例如ls或gcc)执行命令时,将打印彩色输出。据我了解,该过程实际上是在输出ANSI转义码,并且终端会格式化颜色。 但是,如果我通过另一个进程(例如自定义C应用程序)执行相同的命令,并将输出重定向到应用程序自己的输出,则这些颜色不会持久。 程序如何确定是否以彩色格式输出文本?是否有一些环境变量?

7
如何在UNIX中创建大文件?
我在Windows中找到了一种做这种事情的方法 echo "This is just a sample line appended to create a big file. " > dummy.txt for /L %i in (1,1,21) do type dummy.txt >> dummy.txt http://www.windows-commandline.com/how-to-create-large-dummy-file/ 在UNIX中,有没有一种方法可以复制文件,追加然后重复该过程?像for .. cat file1.txt > file1.txt什么?
17 shell  files 


4
管道旁的空间
我见过的history | grep blah和history |grep blah; 并且history|grep blah也可以使用,尽管似乎没有人使用过它。 空间中是否有任何意义(例如,到/来自不同命令的管道要求使用不同的空间),还是总是武断的?
17 bash  shell  pipe 

1
以一定深度的子文件夹递归rsync
我想rsync递归地创建一个文件夹,但只希望包含一定深度的子文件夹。 例如,我想要像这样的1,2,3或4个子文件夹的深度: source/ ├── subfolder 1 │ ├── subsubfolder │ │ ├── subsubsubfolder │ │ │ └── wanted with depth 4.txt │ │ └── wanted with depth 3.txt │ └── wanted with depth 2.txt ├── subfolder 2 │ └── wanted with depth 2.txt └── wanted with depth 1.txt


4
为什么猫x >> x循环?
以下bash命令进入无限循环: $ echo hi > x $ cat x >> x 我可以猜到它开始写到stdout之后会cat继续读取x。但是,令人困惑的是,我自己的cat测试实现表现出不同的行为: // mycat.c #include <stdio.h> int main(int argc, char **argv) { FILE *f = fopen(argv[1], "rb"); char buf[4096]; int num_read; while ((num_read = fread(buf, 1, 4096, f))) { fwrite(buf, 1, num_read, stdout); fflush(stdout); } return 0; } 如果我运行: $ …

3
运行sh脚本:尽管具有可执行位和root权限,但«权限被拒绝»
我在VirtualBox中安装了Debian (用于各种通常会破坏系统的实验),并尝试启动VirtualBox guest虚拟机附加脚本。我以root用户身份登录并尝试启动autorun.sh,但是得到了“权限被拒绝”。ls -l显示该脚本具有可执行权限。 抱歉,我无法复制输出-VirtualBox在没有插件的情况下绝对没有用,因为共享目录或共享剪贴板都不起作用。但是请您确定,我手动复制了权利: #ls -l ./autorun.sh -r-xr-xr-x 1 root root 6966 Mar 26 13:56 ./autorun.sh 起初我以为脚本可能执行了导致错误的操作。我尝试用替换/bin/sh为#/pathtorealsh/sh -xv,但没有输出-似乎脚本甚至无法执行。 我什至不知道是什么原因造成的。

2
如何在MOTD中使用颜色?
我编辑了默认设置/etc/update-motd.d/00-header,添加了一些颜色以使其更易于阅读: printf "Welcome to \e[1;34m%s\e[0m \e[2m(%s %s %s)\e[0m\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)" 我可以在终端中很好地运行该行代码,但是当我00-header使用此信息进行编辑时,我得到了以明文形式打印的转义代码: Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m 如何在当天的留言中添加一点色彩?
17 shell  ubuntu  colors  motd 

4
运行Shell脚本时提示用户以root用户身份登录
我遇到的问题是,当我输入命令时, su - root 在我的shell脚本文件的开头,它会提示用户输入密码,然后它不与外壳脚本的其余部分继续。然后,我必须通过终端手动定位并运行Shell脚本。我希望脚本确保用户以root用户身份登录,然后继续执行其余的Shell脚本。 换句话说,我想以任何用户身份运行脚本,但是一旦脚本开始执行,用户必须更改为root用户,然后以root用户身份继续其余脚本,直到完成。能做到吗?

3
为什么小于号不能代替bash中的cat?
我听说过“猫的无用使用”并找到了一些建议,但是以下内容在我的bash shell中什么都没有输出。 < filename 使用cat的效果与预期的一样。 cat filename 我正在使用Fedora Core 18和GNU bash,版本4.2.45(1)。 编辑:在管道前使用它也不起作用。 < filename | grep pattern 而使用cat的效果可预期。 cat filename | grep pattern EDIT2:澄清一下,我知道我可以使用它 grep pattern < filename 但我在这里阅读了/programming/11710552/useless-use-of-cat,我也可以在命令前使用它。但是,它不能在命令前运行。

2
如何将数据流传输到期望从作为参数给出的文件中读取数据的程序?
我有一个很大的gzip压缩文件,并且我想要一个程序(在这种情况下为4s-import)来读取它。首先解压缩文件,然后使用文件路径作为参数调用程序,这需要花费大量时间。是否可以做类似的事情: zcat huge.gz | 4s-import <SOME MAGIC> 其中SOME-MAGIC就像是包含stdin的抽象文件的路径? 否则,我必须做的更慢且消耗更多磁盘空间的替代方法是: zcat huge.gz > huger 4s-import huger


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.