首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Perl脚本中的Bash脚本挂起

Perl脚本中的Bash脚本挂起
EN

Unix & Linux用户
提问于 2020-02-11 12:31:00
回答 3查看 612关注 0票数 0

我正在Mac上的Perl脚本中运行一个小bash脚本,但是bash脚本在完成后似乎会挂起。Perl脚本不会拾取并继续。bash脚本在shell窗口中工作得很好。

这是剧本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for f in *.flac
do
    /usr/local/bin/ffmpeg -i "$f" -aq 1 "${f%flac}mp3"
done

我就是这样称呼它的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
my $mp3Status = system ("/Users/user/bin/flac2mp3_0.sh"); 
EN

回答 3

Unix & Linux用户

发布于 2020-02-11 15:08:11

不需要指定bash吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
system("/bin/bash /Users/user/bin/flac2mp3_0.sh");

编辑:如果仍然不能工作,请尝试使用此语法(相同,但在末尾使用管道)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
system("/bin/bash /Users/user/bin/flac2mp3_0.sh|");
票数 0
EN

Unix & Linux用户

发布于 2020-02-11 16:21:56

确保bash脚本的顶部有shebang #!/bin/bash,然后将退出0添加到脚本的末尾,以便其他程序知道它已成功退出。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
for f in *.flac
do
    /usr/local/bin/ffmpeg -i "$f" -aq 1 "${f%flac}mp3"
done
exit 0

让我们尝试另一种方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
find -name "*.cfg" -type f -exec /usr/local/bin/ffmpeg -i "$f" -aq 1 "${f%flac}mp3" {} \;
done
exit 0
票数 0
EN

Unix & Linux用户

发布于 2020-02-11 19:34:48

解决了!!我更改了Perl脚本中的引用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@sysCmd=(`/usr/local/bin/ffmpeg` , '-' , "$t" , ' -aq 1', '${t%flac}mp3');
system (@sysCmd);

现在,我可以处理Perl脚本的其余部分。感谢所有提出一些想法的人。

票数 -1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/567029

复制
相关文章
bash 脚本中嵌入 expect
在 中执行一些命令时总是需要交互式的输入信息,如 等等,这可以起到提醒用户的作用,也更加保险。但是有的时候在执行自动化脚本时并不希望一直进行交互式的操作,所以 便显得极为有用。
f_zyj
2021/12/07
2.1K0
bash脚本编程
编程语言: 编译器,解释器 编程语言:机器语言,汇编语言、高级语言 静态语言:编译型语言 强类型(变量) 关键字: 事先转换成可执行格式 c,c++,JAVA,C# 动态语言:解释型语言 on the fly 弱类型 边解释变执行 php,shell,python,perl(面向过程) ​ 面向对象:shell,c 面向对象:JAVA,Python,perl,C++ ​ bash:脚本解释器 编程能力: 脚本编程 变量:内存空间,命名的内存空间(可以回收) 内存:编址的存储
若与
2018/07/04
1.3K0
bash 脚本 learning
linux bash 脚本是个好东西,能用工具搞定的就尽量避免用手敲。这里记录下学习过程中的问题。
上山打老虎了
2022/06/14
4360
unix 的 bash shell 脚本
1. test01   test02 1 200    1 100 2 500    2 300 3 200    3 50 4 100    4 150 输出 200 100 100 500 300 200 300 50  150 100 150 -50 awk 减法数组 awk ‘ NR == FNR { a[NR]=$2 } NR != FNR { print a[FNR], $2,(a[FNR]-$2)} ' /root/test* 2. 123abc456 45
bear_fish
2018/09/20
1.5K0
Bash 脚本列出前缀中的所有 IP
例子 ./cidr-to-ip.sh [OPTION(only one)] [STRING/FILENAME] -h 显示此帮助屏幕 -f 在给定 STRING(s) 时强制检查网络边界 -i 将从输入文件中读取(文件每行应包含一个 CIDR)(无网络边界检查) -b 与 -i 相同,但具有网络边界检查 #!/bin/bash ############################ ## Methods ############################ prefix_
Khan安全团队
2022/01/05
2.1K0
bash脚本 while语法
基本语法(比较常见的两种形式): 只要特定条件为真,”while” 语句就会执行 while [ condition ] do command1 command2 command3 done 或者 while [ condition ]; do command1 command2 command3 done 说明:  行1,首先进行条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则 不进入循环,介绍while 命令  行3,执行命令区域,这些命令中,
joshua317
2018/04/16
8430
bash脚本 while语法
Bash脚本编程(原创)
Bash,Unix shell的一種,在1987年由布萊恩·福克斯為了GNU計劃而编写。1989年釋出第一個正式版本,原先是計劃用在GNU作業系統上,但能运行于大多数类Unix系统的操作系统之上,包括Linux與Mac OS X v10.4都將它作為預設shell。它也被移植到Microsoft Windows上的Cygwin與MinGW,或是可以在MS-DOS上使用的DJGPP專案。在Novell NetWare與Andriod在上也有移植。1990年後,Chet Ramey成为了主要的维护者。為Bourne shell的後繼相容版本與開放原始碼版本,它的名稱來自Bourne shell(sh)的一个双关语(Bourne again / born again):Bourne-Again SHell。
用户2645267
2018/08/04
1.4K0
Linux笔记------bash脚本
<https://www.runoob.com/linux/linux-shell-basic-operators.html
来杯Sherry
2023/05/25
1.7K0
常用bash脚本功能
参考:https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash
YP小站
2021/11/26
9000
翻译:Perl代码审计:Perl脚本中存在的问题与存在的安全风险
程序设计语言通常不构成安全风险,风险是由程序员带来的。几乎每种语言都有某些缺陷,这些缺陷在某种程度上可能有助于创建不安全的软件,但软件的整体安全性仍然在很大程度上取决于开发者的安全意识。Perl也有安全“陷阱”,然而大多数Perl程序员并不了解这些陷阱。
王驭停
2021/08/27
2.7K0
处理Apache日志的Bash脚本
去年一年,我写了将近100篇网络日志。 现在这一年结束了,我要统计"访问量排名",看看哪些文章最受欢迎。(隆重预告:本文结尾处将揭晓前5名。) 以往,我用的是AWStats日志分析软件。它可以生成很详
ruanyf
2018/04/18
1.2K0
处理Apache日志的Bash脚本
通用的停止进程bash脚本
printf "\033[1;33musage: $0 process_cmdline\033[m\n"
一见
2018/08/07
1.4K0
Bash脚本编程之subshell
(command1;command2;command3;...)会启动子shell。子shell可以访问父shell的变量,对父shell变量的改动只在子shell中有效;子shell中定义的变量是局部变量,外部不能访问:
枇杷李子橙橘柚
2019/05/26
8590
Bash脚本编程之引用
引用的意思是用引号括起一个字符串,以保护字符串中的特殊字符不被shell或shell脚本重新解释或扩展:
枇杷李子橙橘柚
2019/05/26
7950
Bash脚本编程之数组
array=( "${array[@]}" "new element" )或array[${#array[*]}]="new element"
枇杷李子橙橘柚
2019/05/26
7040
Bash 脚本 set 命令教程
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节。 set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。本文介绍它的基本用法,让你可以更安心地使用
ruanyf
2018/04/12
1.7K0
Bash 脚本 set 命令教程
《Bash 脚本教程》发布了
Bash 是 Linux 和 Mac 的默认 Shell(命令行环境),系统管理和服务器开发都需要它。虽然不难,但是语法很怪异,比如计算字符串的长度要写成${#varname},根本记不住,需要查手册。网上找不到简明扼要的中文教程,我很早就想整理一个,方便自己日后使用。
ruanyf
2020/04/17
9120
《Bash 脚本教程》发布了
Linux Bash脚本练习3
1.任务描述: 写一个脚本实现如下功能: manageuser.sh --add user1,user2,user3,... manageuser.sh --del user1,user2,user3,... manageuser.sh --help 要求,如果用户不存在,才能添加,并用户密码同用户名;如果delete存在用户,那么用户的家目录一同delete掉;提供--help进行用户提示。 #!/bin/bash # if [ $# -lt 1 ] ; then    echo "no arg
py3study
2020/01/14
2.5K0
Bash 脚本 set 命令教程
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节。 set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。本文介绍它的基本用法,让你可以更安心地使
崔庆才
2018/06/25
1.5K0
[Linux][bash]更新cowsay和fortune的bash脚本
上次更新fortune自定义发现召唤cowsay的bash shell脚本有小概率的bug,就是随机脚本可能超出cows列出图形的数量,这里修补下。
用户9314062
2022/05/20
6520

相似问题

如何从bash脚本捕获挂起的简历

20

Bash脚本到ping远程机器挂起

10

如何处理bash脚本中ssh命令的挂起?

10

Bash文档中的Perl脚本(不输出变量)?

10

Bash脚本-Way忽略挂起服务器

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文