Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok linux alatt...

Hogyan tudok linux alatt programot meghívni shell nyelven?

Figyelt kérdés

Sziasztok!


Van egy program. Mjpg_streamer és egy külön mappában van. Hogyan tudom shell ben meghívni a mappa tartalmát és indítsa el az általam megadott szempontok alapján.

Van egy konfigurációs fájlom is hozzá, mely maga a funkciók és külön a konfigurációkat tartalmazza.

Ezzel szeretném használni.


#!/bin/sh /etc/rc.common

# Copyright (C) 2009-2012 OpenWrt.org


START=50


SERVICE_DAEMONIZE=1

SERVICE_WRITE_PID=1


PROG=/usr/bin/mjpg_streamer


append_bool() {

local section="$1"

local option="$2"

local value="$3"

local _val

config_get_bool _val "$section" "$option" '0'

[ "$_val" -gt 0 ] && append args "$3"

}


append_string() {

local section="$1"

local option="$2"

local value="$3"

local _val

config_get _val "$section" "$option"

[ -n "$_val" ] && append args "$3$_val"

}


error() {

echo "${initscript}:" "$@" 1>&2

}


section_enabled() {

config_get_bool enabled "$1" 'enabled' 0

[ $enabled -gt 0 ]

}


start_instance() {

local s="$1"

args=""


section_enabled "$s" || return 1


config_get device "$s" 'device'

config_get_bool http_enabled "$s" 'http_enabled' 0

config_get_bool authentication "$s" 'authentication' 0

config_get username "$s" 'username'

config_get password "$s" 'password'

config_get_bool file_enabled "$s" 'file_enabled' 0

config_get folder "$s" 'folder'


[ -c "$device" ] || {

error "device '$device' does not exist"

return 1

}


append_bool "$s" enabled "input_uvc.so "

append_string "$s" device "--device "

append_string "$s" resolution "--resolution "

append_string "$s" fps "--fps "

append_bool "$s" yuv "--yuv"

append_string "$s" quality "--quality "

append_string "$s" minimum_size "--minimum_size "

append_bool "$s" no_dynctrl "--no_dynctrl"

append_string "$s" led "--led "


append_bool "$s" enabled ""


inputargs=$args

args=""


append_bool "$s" http_enabled "output_http.so "


if [ $http_enabled -gt 0 ]; then

append_string "$s" www "--www "

append_string "$s" port "--port "

append_bool "$s" authentication "--credentials $username:$password"

fi


append_bool "$s" http_enabled ""


httpargs=$args

args=""


append_bool "$s" file_enabled "output_file.so "


if [ $file_enabled -gt 0 ]; then

append_string "$s" folder "--folder "

append_bool "$s" mjpeg "--mjpeg"

append_string "$s" delay "--delay "

append_string "$s" ringbuffer "--size "

append_string "$s" exceed "--exceed "

append_string "$s" command "--command "

config_get folder "$s" 'folder'

[ ! -z "$folder" ] && mkdir -p $folder

fi


append_bool "$s" file_enabled ""


service_start $PROG --input "$inputargs" ${httpargs:+--output "$httpargs"} ${args:+--output "$args"}

#service_start /usr/bin/mjpg_streamer --input "input_uvc.so --device /dev/video0 --resolution 640x480 --fps 5" --output "output_http.so --www /www/webcam --port 8080"

#service_start /usr/bin/mjpg_streamer --input "input_uvc.so \

# --device $device --fps $fps --resolution $resolution" \

# --output "output_http.so --www $www --port $port ${username:+-c $username:$password}" \

# ${outputfolder:+--output "output_file.so -f $outputfolder -d $outputdelay $ringbuffer"}

}


stop_instance() {

local s="$1"


section_enabled "$s" || return 1


service_stop /usr/bin/mjpg_streamer

}


start() {

config_load 'mjpg-streamer'

config_foreach start_instance 'mjpg-streamer'

}


stop() {

config_load 'mjpg-streamer'

config_foreach stop_instance 'mjpg-streamer'

}



És maga a konfig tartalma:



config mjpg-streamer 'core'

option device '/dev/video0'

option fps '5'

option enabled '0'

option led 'on'

option http_enabled '1'

option www '/www/webcam'

option port '6400'

option authentication '1'

option username 'root'

option password 'Tap83irodaTomi'

option resolution '1600x1200'

option file_enabled '1'

option command 'parancsfuttatasa'



#mjpg streamer meghívása #program meghívása
2014. aug. 27. 13:58
 1/2 anonim ***** válasza:

Bocs, nem rágom át a konfigfájlt, az alapkérdésre válaszolok:


> hogyan tudok linux alatt programot meghívni


Egész egyszerűen "parancsként" odaírod az elérési útját, pl.


program/elérési/útja/program


El fogja indítani a program nevű programot.


Ha esetleg a program saját maga mellett levő más programokat hív, akkor cd-zz be a mappába előtte:


cd program/elérési/útja

program

2014. aug. 27. 14:16
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
ha épp mellette állsz, akkor ./nev
2014. aug. 27. 16:01
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!