Tag: bash

Zsh中的哪个快捷方式与Bash中的Ctrl-U相同?

在Bash中,当我input一个命令时,我按Ctrl + U ,从行首到光标的所有字符都将被删除。 但是,在zsh中,如果我按下Ctrl + U ,则整行不见了。 如何在Bsh中执行相同的操作?

当bash脚本仍在运行时强制将输出刷新到文件

我有一个小脚本,每天通过crontab使用以下命令调用: /homedir/MyScript &> some_log.log 这个方法的问题是some_log.log只是在MyScript完成之后才创build的。 我想在运行的时候把程序的输出清空到文件中,这样我就可以做类似的事情了 tail -f some_log.log 并跟踪进度等

从shell脚本的目录中select随机文件的最佳方法

从shell脚本的目录中select一个随机文件的最佳方法是什么? 这里是我在Bash中的解决scheme,但是对于在Unix上使用的更便携(非GNU)版本,我会非常感兴趣。 dir='some/directory' file=`/bin/ls -1 "$dir" | sort –random-sort | head -1` path=`readlink –canonicalize "$dir/$file"` # Converts to full path echo "The randomly-selected file is: $path" 任何人有任何其他的想法? 编辑: lhunathparsingls的好处。 我想这归结于你是否想要移植或不移动。 如果你有GNU findutils和coreutils,那么你可以这样做: find "$dir" -maxdepth 1 -mindepth 1 -type f -print0 \ | sort –zero-terminated –random-sort \ | sed 's/\d000.*//g/' 噢,那很有趣! 从我说的“随机文件”来看,它更符合我的问题。 尽pipe如此,现在很难想象一个安装了GNU但不包含Perl 5的Unix系统。

计算特定目录中的目录数量

如何计算特定目录中文件夹的数量。 我正在使用下面的命令,但它总是提供一个额外的。 find /directory/ -maxdepth 1 -type d -print| wc -l 例如,如果我有3个文件夹,则此命令提供了4.如果它包含5个文件夹,则该命令提供了6.为什么是这样?

我如何从Bash中的数组获得唯一值?

我有几乎和这里一样的问题。 我有一个数组,其中包含一个aa ab aa ac aa ad等。现在我想从这个数组中select所有独特的元素。 以为,这将是简单的sort | uniq sort | uniq或sort -u如他们在其他问题中提到的,但在数组中没有任何改变…代码是: echo `echo "${ids[@]}" | sort | uniq` 我究竟做错了什么?

有没有办法在Bash脚本中创build键值对?

我正在尝试使用Bash脚本创build一个键值对的字典。 我正在尝试使用这个逻辑: declare -d dictionary defaults write "$dictionary" key -string "$value" … $dictionary是一个variables,但这不起作用。 有没有办法在Bash脚本中创build键值对?

如何更新zip文件中的一个文件

是否可以replace压缩文件中的文件而不解压缩删除旧文件添加新文件并重新压缩它? 原因是我有一个zip文件,这是真的很大有一个XML文件,我有时需要更新的zip文件。 解压缩并重新压缩需要很长时间。 所以我想只能通过一个脚本来replacezip中的一个xml。 我已经有了检查我有更新的XML。 那么是否有可能只取代一个XML而不解压缩和重新压缩? 对不起,我会使用zip命令来做这样的事情,但问题是脚本实际上是一个Android手机和邮编不是一个命令,我可以使用不幸的是,我离开了这一点。 如果可以的话,我会绝对使用zip,但我只有解压缩的机器人,然后有焦油busybox但焦油不做我所需要的

Shell脚本捕获进程ID并杀死它,如果存在

我试过这个代码,它不工作 #!/bin/sh #Find the Process ID for syncapp running instance PID=`ps -ef | grep syncapp 'awk {print $2}'` if [[ -z "$PID" ]] then Kill -9 PID fi 它在awk附近显示错误。 任何build议,请。

当设置IFS拆分换行符时,为什么需要包含退格?

我很好奇,为什么当设置IFS拆分换行符时需要退格: IFS=$(echo -en "\n\b") 为什么我不能只用这个(这是行不通的)呢? IFS=$(echo -en "\n") 我在一个Linux系统上保存Unix行结尾的文件。 我用新行将我的文件转换为hex,它绝对只使用“0a”作为换行符。 我GOOGLE了很多,虽然很多网页文档的新行,其次是退格解决scheme,没有我find解释为什么退格是必需的。 -大卫。

使用shell脚本发送HTML邮件

我如何使用shell脚本发送HTML电子邮件?