Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash-需要使用exit,然后调用另一个函数吗?_Linux_Bash - Fatal编程技术网

Linux Bash-需要使用exit,然后调用另一个函数吗?

Linux Bash-需要使用exit,然后调用另一个函数吗?,linux,bash,Linux,Bash,我正在写一个小脚本来使用笔记本电脑上的摄像头,然后通过电子邮件把照片发给我。ffmpeg的使用必须有一个退出代码才能工作,因此,通过此退出,邮件功能将不会被调用。我做错了什么 #!/bin/bash MAIL_ADDR=user@example.com ts=`date +%s` list=$(ls | tail -n 1) function mcheese(){ mkdir /tmp/cheese cd /tmp/cheese echo -e "Cheese " | mutt -s "$T

我正在写一个小脚本来使用笔记本电脑上的摄像头,然后通过电子邮件把照片发给我。ffmpeg的使用必须有一个退出代码才能工作,因此,通过此退出,邮件功能将不会被调用。我做错了什么

#!/bin/bash

MAIL_ADDR=user@example.com
ts=`date +%s`
list=$(ls | tail -n 1)

function mcheese(){
mkdir /tmp/cheese
cd /tmp/cheese
echo -e "Cheese " | mutt -s "$TS Cheese" $MAIL_ADDR -a $list
}

function cheese(){
ffmpeg -f video4linux2 -s vga -i /dev/video0 -vframes 3 /tmp/cheese/vid-$ts.%01d.jpg 
exit 0
}

cheese
mcheese

您可以在一个目录中设置
列表
,然后更改目录并使用它。 这不太可能奏效


使用
bash-x
找出脚本实际失败的地方。

那么,当您删除
退出0
时会发生什么?请注意,您可以从函数中
返回0
,而无需退出整个脚本。如果需要退出,它可以在子shell中吗?例如,
$(ffmpeg…;退出0)
.exit被删除时出错-无法统计yasm-1.1.0.tar.gz:没有这样的文件或目录yasm-1.1.0.tar.gz:无法附加文件。这个
yasm-1.1.0.tar.gz
文件出现在哪里?在文件夹的根目录中-因此为此,它的/home/user/scripts/yasm-1.1.0Ahh愚蠢的我-我正在列出根文件夹-正在工作:-@Grimlockz你可以使用此小技巧可以避免更改目录时出现问题:
list=$(ls-d“$PWD”/*| tail-n1)
。这样它将拥有完整的路径。