关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 5年前关闭。 我正在编写的脚本的目的是比较两个系列的文件。文件名本身存储在两个单独的文件中,每行一个路径。我的想法是有两个while read循环,每个文件名列表一个,但是如何将两个循环混在一起? while read compareFile <&3; do if [[ ! $server =~ [^[:space:]] ]] ; then #empty line exception continue fi echo "Comparing file - $compareFile" if diff "$compareFile" _(other file from loop?_) >/dev/null ; then echo Same else echo Different fi done …
假设我们有一个bash脚本,如下所示: echo "x" & echo "y" & echo "z" & ..... echo "Z" & wait 有没有办法收集子外壳程序/子进程的退出代码?寻找这样做的方法,找不到任何东西。我需要并行运行这些子shell,否则,这会更容易。 我正在寻找一个通用的解决方案(我有一个未知/动态数量的子进程可以并行运行)。
不久前,我制作了一个脚本,并在其中添加了一些日志记录,但是我忘记了日志记录的重定向是如何工作的:-( 其要点是: #!/bin/bash LOGFILE=/some/path/mylogfile ( # here go my commands which produce some stdout # and, if something goes wrong, also some stderr ) 1>>${LOGFILE} 2> >( tee -a ${LOGFILE} >&2 ) 当我运行脚本时,它不会将任何内容打印到stdout,而只会打印到的内容stderr。日志文件同时${LOGFILE}捕获stdout和stderr。 当我运行脚本并且终端上没有输出时,我知道一切都很好。如果有任何输出,我知道出了点问题,可以检查日志文件以找出问题所在。 现在让我感到困惑的重定向部分的语法是: 2> >( some command ) 谁能解释那里发生了什么?
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 4年前关闭。 在下面的脚本中-提示用户确认要继续运行潜在的错误脚本-当用户Y在提示符下输入时-该脚本将跳出该case块,仅while再次发送回循环中。 #! /bin/bash set -e echo echo "bad install start" echo "-----------------------------------------" while true; do read -p "this script will probably fail - do you want to run anyway?" yn case $yn in [Yy]*) ##### WHAT GOES HERE?? ##### ;; [Nn]*) exit ;; …
我正在编写将以方式运行的安装脚本/bin/sh。 有一行提示输入文件: read -p "goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY 我想把这条长行分成多行,以使它们都不超过80个字符。我说的是脚本源代码中的几行;与执行脚本时要在屏幕上实际打印的行无关! 我尝试过的 第一手方法: read -p "goat can try change directory if cd fails to do so. " \ "Would you like to add this feature? …
我有一个脚本看起来像: c=0 for f in */*; do cp -v "$f" "/myhome/CE$(printf '%0*d' 2 $BATCHNUM)-new-stuctures_extracted/test-$(printf '%0*d' 5 $c)" c=$((c=c+1)) done 但是,用户必须提供一个调用BATCHNUM的变量,否则我需要强制该脚本停止运行。如果我也可以强制停止调用此脚本的脚本(甚至是调用#2脚本的#1脚本也要停止),那会更好。