Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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脚本_Linux_Bash - Fatal编程技术网

Linux 用于运行参数不起作用的程序的Bash脚本

Linux 用于运行参数不起作用的程序的Bash脚本,linux,bash,Linux,Bash,您好,谢谢您的阅读。 对于linux的使用,我是一个初学者,所以这个问题对你们大多数人来说可能很枯燥,但我在任何地方都找不到答案。 我尝试使用bash脚本运行6个程序,每个程序都需要指定一个配置文件作为参数 这就是我迄今为止所尝试的: #!/bin/bash ./shout/sc_serv "sc_serv.conf" & ./rshout/sc_serv "sc_serv.conf" & ./dshout/sc_serv "sc_serv.conf" & ./trans

您好,谢谢您的阅读。 对于linux的使用,我是一个初学者,所以这个问题对你们大多数人来说可能很枯燥,但我在任何地方都找不到答案。 我尝试使用bash脚本运行6个程序,每个程序都需要指定一个配置文件作为参数

这就是我迄今为止所尝试的:

#!/bin/bash
./shout/sc_serv "sc_serv.conf" &
./rshout/sc_serv "sc_serv.conf" &
./dshout/sc_serv "sc_serv.conf" &
./trans/sc_trans "sc_trans_dj.conf" &
./rtrans/sc_trans "sc_trans_dj.conf" &
./dtrans/sc_trans "sc_trans_dj.conf" &
这会导致以下错误:

msg:[CONFIG] Could not find `sc_trans_dj.conf' - will now prompt for a config file to load
WARN [CONFIG] Could not find `sc_serv.conf' - looking for config file to load...
还尝试向配置添加相同的路径

#!/bin/bash
./shout/sc_serv "/shout/sc_serv.conf" &
./rshout/sc_serv "/rshout/sc_serv.conf" &
./dshout/sc_serv "/dshout/sc_serv.conf" &
./trans/sc_trans "/trans/sc_trans_dj.conf" &
./rtrans/sc_trans "/rtrans/sc_trans_dj.conf" &
./dtrans/sc_trans "/dtrans/sc_trans_dj.conf" &
但它也会产生同样的错误

2014-05-31 12:44:54     WARN    [CONFIG] Could not find `/dshout/sc_serv.conf' - looking for config file to load...
路径如下所示:

/home/user/script
/home/user/shout/sc_serv
/home/user/shout/sc_serv.conf
等等

请记住,在回答时,我正在寻找最简单的解决方案,因为我看到了许多线程,什么都不懂。我只需要它在这一种情况下工作,而不是一个脚本,它将普遍适用于所有事情,所以没有路径获取等等,如果我需要完整的路径,那也很好


编辑::感谢您编辑我的文章,我是新来的,不知道如何正确缩进内容

如果您在主目录中,我想您的意思是:

#!/bin/bash
./shout/sc_serv "./shout/sc_serv.conf" &
...
请注意添加的。一开始

另一种方法是给出绝对形式:

#!/bin/bash
./shout/sc_serv "/home/user/shout/sc_serv.conf" &
...

您好,谢谢您的快速回答。我试着像你说的那样做,但仍然会出现同样的错误。这就是我尝试过的:./shout/sc_-serv”/home/user/shout/sc_-serv.conf“&忽略我最后的评论。所以它现在正在运行,添加了点,但我仍然有一个问题。程序本身现在基本上是从bash所在的目录运行的,因此没有任何功能,因为configs中有几个硬编码路径。我是否可以从脚本中运行程序,使其从自己的文件夹中运行?请尝试类似于
(cd/home/user/shout;exec./sc_serv sc_serv.conf;)和
。当然,
cd/home/user/shout
可以是
cd/shout
,但这需要始终在
/home/user
中运行调用方脚本。我通常会这样做:转到shout文件夹,然后键入。/sc_serv sc_serv.conf。程序将启动并使用它自己的“shout”目录中的文件,而不使用完整路径。例如,运行包含“sc_trans”的“trans”文件夹后,将在运行该文件夹的文件夹中查找“playlist”文件夹,并从其中运行playlist.pls文件。由于它现在的运行方式,它不会执行播放列表文件,因为它找不到它。编辑:现在就试试你说的话,非常感谢!使用(cd/home/user/shout;exec./sc_serv sc_serv.conf;)的完整路径,它现在可以完美地工作&