标签: shell

如何确定我正在使用的当前shell?

如何确定我正在使用的当前shell?

ps仅仅命令的输出是否足够?

如何在不同版本的UNIX中完成?

unix bash shell csh tcsh

587
推荐指数
14
解决办法
46万
查看次数

sed命令在文件中查找和替换并覆盖文件不起作用,它会清空文件

我想通过命令行在HTML文件上运行查找和替换.

我的命令看起来像这样:

sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html > index.html
Run Code Online (Sandbox Code Playgroud)

当我运行它并在之后查看该文件时,它是空的.它删除了我的文件的内容.

当我再次恢复文件后运行它:

sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html
Run Code Online (Sandbox Code Playgroud)

stdout是文件的内容,并且已执行查找和替换.

为什么会这样?

unix shell sed io-redirection

582
推荐指数
9
解决办法
70万
查看次数

我如何知道Bash脚本中的脚本文件名?

如何在脚本本身中确定Bash脚本文件的名称?

就像我的脚本在文件中一样runme.sh,那么我怎么能让它显示"你正在运行runme.sh"的消息而没有硬编码?

linux bash shell scripting

567
推荐指数
15
解决办法
41万
查看次数

出错时自动退出bash shell脚本

我一直在编写一些shell脚本,如果能够在任何命令失败的情况下暂停执行所述shell脚本,我会发现它很有用.请参阅下面的示例:

#!/bin/bash  

cd some_dir  

./configure --some-flags  

make  

make install
Run Code Online (Sandbox Code Playgroud)

因此,在这种情况下,如果脚本无法更改为指示的目录,那么如果失败,它肯定不会在之后执行./configure.

现在我很清楚我可以对每个命令进行if检查(我认为这是一个无望的解决方案),但是如果其中一个命令失败,是否有全局设置使脚本退出?

error-handling bash shell exit

564
推荐指数
8
解决办法
23万
查看次数

sudo echo"something">>/etc/privilegedFile不起作用......有替代方案吗?

对于Linux中的sudo权限,这是一个非常简单的问题,至少看起来应该是这样.

有很多的时候,我只是想将一些东西附加到/etc/hosts或类似的文件,但最终没有能够因为两者>>>不准,甚至有根.

有没有必要让这项工作无需susudo su进入root?

permissions bash shell scripting sudo

555
推荐指数
9
解决办法
18万
查看次数

使用wget以递归方式获取包含任意文件的目录

我有一个web目录,我存储一些配置文件.我想使用wget来拉下这些文件并保持它们当前的结构.例如,远程目录如下所示:

http://mysite.com/configs/.vim/
Run Code Online (Sandbox Code Playgroud)

.vim拥有多个文件和目录.我想使用wget在客户端上复制它.似乎找不到正确的wget标志组合来完成这项工作.有任何想法吗?

shell wget

545
推荐指数
12
解决办法
66万
查看次数

如何测试变量是否是Bash中的数字?

我无法弄清楚如何确保传递给我的脚本的参数是否为数字.

我想做的就是这样:

test *isnumber* $1 && VAR=$1 || echo "need a number"
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

linux bash shell

543
推荐指数
21
解决办法
61万
查看次数

Bash工具从文件中获取第n行

这样做是否有"规范"方式?我一直在使用head -n | tail -1哪种技巧,但我一直想知道是否有一个Bash工具专门从文件中提取一行(或一系列行).

"规范"是指一个程序,其主要功能就是这样做.

unix bash shell awk sed

543
推荐指数
14
解决办法
43万
查看次数

为什么元字符周围有时需要空格?

几个月前,我在手臂上纹了一个叉形炸弹,我跳过了空白,因为我觉得没有它们看起来更好.但令我沮丧的是,有时(并不总是)当我在shell中运行它时它不会启动一个fork炸弹,但它只是给出了一个语法错误.

bash: syntax error near unexpected token `{:'
Run Code Online (Sandbox Code Playgroud)

昨天它发生在我试图在朋友的Bash shell中运行它,然后我添加了空白,它突然工作,:(){ :|:& };:而不是:(){:|:&};:

空白是否重要; 我的胳膊上有语法错误吗?!

它似乎总是在zsh中工作,但在Bash中不起作用.

一个相关的问题没有解释关于空白的任何事情,这确实是我的问题; 为什么Bash需要的空白能够正确解析它?

syntax bash shell syntax-error

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

Bash中单引号和双引号之间的区别

在Bash中,单引号('')和双引号("")之间有什么区别?

syntax bash shell quotes

501
推荐指数
6
解决办法
17万
查看次数