标签: shell

在Bash中提取子字符串

给定表单中的文件名someletters_12345_moreleters.ext,我想提取5位数并将它们放入变量中.

因此,为了强调这一点,我有一个带有x个字符的文件名,然后是一个五位数序列,两边都是一个下划线,然后是另一组x个字符.我想取5位数字并将其放入变量中.

我对可以实现的不同方式的数量非常感兴趣.

string bash shell substring

684
推荐指数
17
解决办法
114万
查看次数

如何'grep'连续流?

这是否可以grep连续使用?

我的意思是一种tail -f <file>命令,但grep在输出上只是为了保留我感兴趣的行.

我已经尝试了,tail -f <file> | grep pattern但似乎grep只能执行一次tail,也就是说永远不会.

linux bash shell grep tail

678
推荐指数
7
解决办法
30万
查看次数

如何从另一个shell脚本调用shell脚本?

我有两个shell脚本,a.shb.sh.

如何b.sh从shell脚本中调用a.sh

bash shell

669
推荐指数
15
解决办法
90万
查看次数

在继续之前,如何暂停我的shell脚本一秒钟?

我只找到了如何等待用户输入.但是,我只想暂停,以免while true我的计算机崩溃.

我试过了pause(1),但它说-bash: syntax error near unexpected token '1'.怎么做到呢?

unix bash shell terminal

642
推荐指数
8
解决办法
81万
查看次数

在Bash中重定向stderr和stdout

我想将进程的stdout和stderr重定向到单个文件.我怎么用Bash做到这一点?

bash shell redirect pipe

635
推荐指数
10
解决办法
66万
查看次数

set -e在bash脚本中的含义是什么?

我正在研究脚本在从Debian存档(.deb)文件解压缩该包之前执行的这个preinst文件的内容.

该脚本具有以下代码:

#!/bin/bash
set -e
# Automatically added by dh_installinit
if [ "$1" = install ]; then
   if [ -d /usr/share/MyApplicationName ]; then
     echo "MyApplicationName is just installed"
     return 1
   fi
   rm -Rf $HOME/.config/nautilus-actions/nautilus-actions.conf
   rm -Rf $HOME/.local/share/file-manager/actions/*
fi
# End automatically added section
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是关于这一行:

set -e
Run Code Online (Sandbox Code Playgroud)

我认为脚本的其余部分非常简单:它检查Debian/Ubuntu包管理器是否正在执行安装操作.如果是,它会检查我的应用程序是否刚刚安装在系统上.如果有,脚本将打印消息"MyApplicationName刚刚安装"并结束(return 1意味着以"错误"结束,不是吗?).

如果用户要求Debian/Ubuntu软件包系统安装我的软件包,该脚本还会删除两个目录.

这是对的还是我错过了什么?

linux bash shell sh

617
推荐指数
9
解决办法
34万
查看次数

使用bash中的单个命令为shell变量分配默认值

我在bash(3.00)shell脚本中对变量进行了大量测试,如果未设置变量,则会分配一个默认值,例如:

if [ -z "${VARIABLE}" ]; then 
    FOO='default'
else 
    FOO=${VARIABLE}
fi
Run Code Online (Sandbox Code Playgroud)

我似乎记得在一行中有一些语法,类似于三元运算符,例如:

FOO=${ ${VARIABLE} : 'default' }
Run Code Online (Sandbox Code Playgroud)

(虽然我知道这不起作用......)

我疯了,还是有类似的东西存在?

bash shell

612
推荐指数
12
解决办法
27万
查看次数

我们什么时候需要围绕shell变量的花括号?

在shell脚本中,我们{}何时在扩展变量时使用?

例如,我见过以下内容:

var=10        # Declare variable

echo "${var}" # One use of the variable
echo "$var"   # Another use of the variable
Run Code Online (Sandbox Code Playgroud)

是否存在显着差异,还是只是风格?一个比另一个更受欢迎吗?

syntax bash shell curly-braces

602
推荐指数
6
解决办法
22万
查看次数

检查Git中是否需要拉

如何检查远程存储库是否已更改,我需要拉?

现在我使用这个简单的脚本:

git pull --dry-run | grep -q -v 'Already up-to-date.' && changed=1
Run Code Online (Sandbox Code Playgroud)

但它相当沉重.

有没有更好的办法?理想的解决方案是检查所有远程分支,并返回已更改分支的名称和每个分支的新提交数.

git bash shell

600
推荐指数
15
解决办法
34万
查看次数

如何反转文件中的行顺序?

我想颠倒文本文件(或stdin)中行的顺序,保留每行的内容.

所以,即从以下开始:

foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

我想结束

baz
bar
foo
Run Code Online (Sandbox Code Playgroud)

是否有标准的UNIX命令行实用程序?

unix shell command-line

591
推荐指数
13
解决办法
31万
查看次数

标签 统计

shell ×10

bash ×9

linux ×2

unix ×2

command-line ×1

curly-braces ×1

git ×1

grep ×1

pipe ×1

redirect ×1

sh ×1

string ×1

substring ×1

syntax ×1

tail ×1

terminal ×1