给定表单中的文件名someletters_12345_moreleters.ext,我想提取5位数并将它们放入变量中.
因此,为了强调这一点,我有一个带有x个字符的文件名,然后是一个五位数序列,两边都是一个下划线,然后是另一组x个字符.我想取5位数字并将其放入变量中.
我对可以实现的不同方式的数量非常感兴趣.
这是否可以grep连续使用?
我的意思是一种tail -f <file>命令,但grep在输出上只是为了保留我感兴趣的行.
我已经尝试了,tail -f <file> | grep pattern但似乎grep只能执行一次tail,也就是说永远不会.
我有两个shell脚本,a.sh和b.sh.
如何b.sh从shell脚本中调用a.sh?
我只找到了如何等待用户输入.但是,我只想暂停,以免while true我的计算机崩溃.
我试过了pause(1),但它说-bash: syntax error near unexpected token '1'.怎么做到呢?
我想将进程的stdout和stderr重定向到单个文件.我怎么用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软件包系统安装我的软件包,该脚本还会删除两个目录.
这是对的还是我错过了什么?
我在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)
(虽然我知道这不起作用......)
我疯了,还是有类似的东西存在?
在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)
是否存在显着差异,还是只是风格?一个比另一个更受欢迎吗?
如何检查远程存储库是否已更改,我需要拉?
现在我使用这个简单的脚本:
git pull --dry-run | grep -q -v 'Already up-to-date.' && changed=1
Run Code Online (Sandbox Code Playgroud)
但它相当沉重.
有没有更好的办法?理想的解决方案是检查所有远程分支,并返回已更改分支的名称和每个分支的新提交数.
我想颠倒文本文件(或stdin)中行的顺序,保留每行的内容.
所以,即从以下开始:
foo
bar
baz
Run Code Online (Sandbox Code Playgroud)
我想结束
baz
bar
foo
Run Code Online (Sandbox Code Playgroud)
是否有标准的UNIX命令行实用程序?