Questions tagged «shell-script»

有关shell脚本,由shell解释的可执行文件(bash,zsh等)的问题。

2
为什么要在shell脚本中转​​义琐碎的字符?
我刚刚打开了一个旧的shell脚本(在Solaris上用旧的ksh88编写),发现在整个代码中重复了以下内容: [ -f $myfile ] && \rm -f $myfile 转义的反斜杠使我感到奇怪。 我知道这是故意的,因为在整个代码中都重复了这种(显然无用的)转义。原始作者早已不在,我无法与他取得联系以询问他。 这仅仅是作者的一个有趣的特质,还是某种在某个时间点变得有意义的已弃用的良好实践?也许实际上是推荐的做事方式,而我完全错过了一些东西?


7
bash如果没有subshel​​l的话没有多个条件?
我想在一个if语句中合并多个条件,然后取反该组合。对于简单的条件组合,我有以下工作代码: if [ -f file1 ] && [ -f file2 ] && [ -f file3 ] ; then # do stuff with the files fi 这很好。如果要取消它,可以使用以下工作代码: if ! ( [ -f file1 ] && [ -f file2 ] && [ -f file3 ] ) ; then echo "Error: You done …


3
该脚本如何确保自身只运行一个实例?
2013年8月19日,Randal L. Schwartz发布了该 Shell脚本,该脚本旨在确保在Linux上“该脚本只有一个实例在运行,而没有竞争条件或无需清除锁定文件”: #!/bin/sh # randal_l_schwartz_001.sh ( if ! flock -n -x 0 then echo "$$ cannot get flock" exit 0 fi echo "$$ start" sleep 10 # for testing. put the real task here echo "$$ end" ) < $0 它似乎按广告宣传工作: $ ./randal_l_schwartz_001.sh & ./randal_l_schwartz_001.sh [1] 11863 11863 …

2
我的终端中以非零代码退出的任何命令都会关闭我的终端窗口
起初这有点有趣,就像玩“ Bash Roulette” ...但是现在它已经变老了。 我的终端中以非零代码退出的任何命令都会关闭我的终端窗口 有人告诉我,也许我set -e在终端机上的某个地方设置了一些bash脚本。 我已经检查了.bash_profile// .bashrc/ .profile,看起来好像不在set -e那里。 还有其他明显的罪魁祸首吗?


3
比较Bash中的两个字符串
我的ifbash脚本中包含以下代码块: if [ ${PACKAGENAME} -eq kakadu-v6_4-00902C ]; then echo "successfully entered if block!!" fi if即使$PACKAGENAME等于,脚本执行也不会进入我的程序段kakadu-v6_4-00902C。我究竟做错了什么?

4
Linux如何处理Shell脚本?
对于这个问题,让我们考虑一个bash shell脚本,尽管这个问题必须适用于所有类型的shell脚本。 当某人执行Shell脚本时,Linux是一次将所有脚本加载(可能是加载到内存中)还是一次(一行一行地)读取脚本命令? 换句话说,如果我执行一个shell脚本并在执行完成之前将其删除,该执行将终止还是继续进行?

1
叉子炸弹如何工作?
警告请勿尝试在生产机器上运行 在阅读有关该主题的Wikipedia页面时,通常会使用以下代码来了解发生的情况: :(){ :|:& };: 描述摘录 接下来的叉子炸弹在2002年被作为艺术品展出;56 其确切来源尚不清楚,但在2002年之前在Usenet上存在。通过将以下13个字符粘贴到UNIX shell(例如bash或zsh)中来执行炸弹 。它通过定义一个称为“:”的函数进行操作,该函数两次调用自身,一次在前台,一次在后台。 但是最后一点对我来说还不是很清楚。我看到了函数定义: :(){ ... } 但是还发生了什么?还做其他壳,例如ksh,csh和tcsh也遭受了能够构造类似的东西同样的命运?
22 bash  shell-script  zsh  fork 

9
使用find移动文件时保留目录结构
我创建了以下脚本,将定义的旧文件从源目录移动到目标目录。运行良好。 #!/bin/bash echo "Enter Your Source Directory" read soure echo "Enter Your Destination Directory" read destination echo "Enter Days" read days find "$soure" -type f -mtime "-$days" -exec mv {} "$destination" \; echo "Files which were $days Days old moved from $soure to $destination" 该脚本可以很好地移动文件,它也可以移动源子目录的文件,但不会在目标目录中创建子目录。我要在其中实现此附加功能。 举个例子 /home/ketan : source directory …



2
bash脚本末尾的退出代码
我对bash脚本结尾处的退出代码的含义感到困惑:我知道退出代码0表示成功完成了退出,而且还有更多的退出代码编号(如果我没记错的话,为127)。 我的问题是关于在脚本末尾看到退出代码0时,即使脚本失败还是会强制退出代码为0还是有其他含义?

5
如何为Shell脚本创建服务,以便可以像守护程序一样启动和停止它?
我使用CentOS 7的目的是每五秒钟创建一个cron,但正如我研究的那样,我们只能使用一分钟的cron,所以我现在要做的是创建一个shell文件。 hit.sh while sleep 5; do curl http://localhost/test.php; done 但是我已经通过右键单击来手动点击它。 我想要的是为该文件创建服务,以便我可以自动启动和停止它。 我找到了创建服务的脚本 #!/bin/bash # chkconfig: 2345 20 80 # description: Description comes here.... # Source function library. . /etc/init.d/functions start() { # code to start app comes here # example: daemon program_name & } stop() { # code to …

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.