Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。


1
一个别名会影响另一个别名吗?
我的.bash_aliases文件尚未设置太多别名。直到最近,我才发现它们可能有用。 我可以看到自己对别名非常着迷,所以在文件变得笨拙之前,我想通过问一个非常简单的问题来澄清一些问题。一个别名会影响另一个别名,还是该别名总是恢复为原始命令? 一个例子可以使这一点更加清楚: 我已ls别名为ls -lF。比方说,我想也别名d到ls -l | grep -E "^d":确实d现在使用ls -lF的地方ls?如果是这样,这是否是.bash_aliases配置文件中的顺序问题? man alias 没有启发我。
14 bash  alias 


8
给定EXIF数据,如何重命名照片?
假设我有一堆照片,所有照片都带有正确的EXIF信息,并且这些照片是随机命名的(因为我遇到了问题)。我有一个小程序jhead,它给出以下输出: $ jhead IMG_9563.JPG File name : IMG_9563.JPG File size : 638908 bytes File date : 2011:02:03 20:25:09 Camera make : Canon Camera model : Canon PowerShot SX210 IS Date/Time : 2011:02:03 20:20:24 Resolution : 1500 x 2000 Flash used : Yes (manual) Focal length : 5.0mm (35mm equivalent: 29mm) …
14 bash  rename  python  exif 

2
如何在Ubuntu中使用Bash for sh
我正在安装一个巨大的程序,该程序具有作为rpm文件的资源。它卡在了 #!/bin/sh SCITEGICPERLBIN=`dirname $0` SCITEGICPERLHOME=`dirname $SCITEGICPERLBIN` if [ $SCITEGICPERLHOME == "." ] 显然,sh可以bash使用这种语法在Red Hat Linux中工作,但是会unexpected operator在Ubuntu中产生错误。 我无法将脚本更改bash为脚本来自rpm软件包。我可以提取并重新rpm打包程序包,但是可能有很多这样的脚本。 有没有一种方法可以将Shell默认值更改#!/bin/sh为as bash或其他任何可以处理[操作符的方法?

1
条件正则表达式错误
string=123456 if [ $string == 123456 ]; then echo 123 fi 这可以正常工作,但是如果我将==更改为=〜,则会收到此错误: ./test: line 3: [: =~: binary operator expected

3
带有set -e的Bash脚本不会在`…&&…`命令上停止
我使用set -e到的第一个错误停止bash脚本。 一切正常,除非我在以下命令中使用命令&&: $ cat script set -e cd not_existing_dir && echo 123 echo "I'm running! =P" $ $ ./script ./script: line 2: cd: not_existing_dir: No such file or directory I'm running! =P $ 和....相比: $ cat script set -e cd not_existing_dir echo "I'm running! =P" $ $ ./script ./script: …


4
如何使脚本采用多个参数?
这是一个非常简单的脚本 #!/usr/local/bin/bash set -e if [ "$#" -lt 1 ] then echo "Please insert at least one argument" exit else echo -e "\c" fi if [ -h "$1" ] then echo "$1 is a symbolic link" else echo "$1 in not a symbolic link" fi 〜 我的问题是:如何更改脚本以识别多个参数?我有4个文件,我希望脚本返回 $1 is a …

2
使用bash的`/ dev / udp`,我怎么知道端口是否打开?
我没有访问netcat或nmap因此我试图使用bash和/dev/udp/特殊文件到测试端口。 我可以做类似的事情: echo "" > /dev/udp/example.com/8000 但是在使用UDP时$?总是如此0。我假设这是因为echo ""命令的返回值正确吗? 我基本上是在尝试复制nmap和能够做的事情netcat: nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open' nc -z -u example.com 8000 && echo 'open' 我将如何处理/dev/udp?

2
删除早于特定文件的文件
我需要从文件夹中删除所有早于特定文件的文件。 在CentOS 7上运行bash。 我对此有一个解决方案,但我认为应该有一种更优雅的方法: reference_file=/my/reference/file get_modify_time() { stat $1 | grep -Po "Modify: \K[0-9- :]*" } pit=$(get_modify_time $reference_file) for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done

5
列表中的grep文件
我正在尝试对几百个文件的列表运行grep: $ head -n 3 <(cat files.txt) admin.php ajax/accept.php ajax/add_note.php 但是,即使我在文件中找到我知道的字符串时,它们也不会搜索文件: $ grep -i 'foo' <(cat files.txt) $ grep -i 'foo' admin.php The foo was found 我对从文件-f读取模式的标志很熟悉。但是如何读取输入文件? 我曾考虑过将文件复制到cp似乎支持该<(cat files.txt)格式的临时目录的可怕方法,然后从那里复制文件。雪莉有更好的方法。

1
HISTTIMEFORMAT语法
有很多bash指南,包括增加线路,如HISTTIMEFORMAT='%d/%m/%y %T '或HISTTIMEFORMAT="%F %T "对~/.bashrc或/etc/bash.bashrc。 最后报价前总是有一个空格。例如,永远不会HISTTIMEFORMAT='%d/%m/%y %T'。 为什么是这样?


1
如何阻止屏幕破坏标题?
我在centos7上使用bash和GNU screen。我注意到,如果我使用SSH切换到另一台服务器,请更改标题(通过ctrl+ a+ A),然后注销服务器,新标题将被覆盖USER@HOST:~。如何阻止它执行此操作? 我研究了动态标题并确定了正在起作用的内容,但是我不确定如何禁用该功能...

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.