gpt4 book ai didi

linux - 如何从另一个 shell 脚本运行 shell 脚本,从 CSV 文件中读取第一个 shell 脚本名称

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:50 26 4
gpt4 key购买 nike

我有一个用 bash 编写的父脚本(parent.sh):

#!/bin/bash
IFS=","
cat testing.csv | while read line
do
abcd="$line"
eval "$abcd";
done

和用 bash 编写的子脚本 (child.sh),我想从 parent.sh 调用它:

#!/bin/bash

date

在父脚本中,我正在做 cat csv 文件(testing.csv)来读取 child.sh 的名称,csv 文件列中提到的子文件的名称,如下所示:

./child.sh

注意:child.sh、parent.sh、testing.csv文件都在同一个路径下

我总是收到错误“没有这样的文件或目录”,并且在从 csv 读取它的名称时无法从 parent.sh 执行 child.sh。

子脚本和父脚本都有 chmod 777 权限我尝试了所有在父级内部执行子级的语法,例如:sh child.sh , bash child.sh , source child.sh 但没有成功。

请帮帮我!

最佳答案

所以问题是您在 CSV 文件中有 Windows 行结尾。如果你跑

dos2unix testing.csv

问题应该消失了。

此外,IFSeval 的使用可能会让人感到不安。尝试类似的东西

#!/bin/bash

while IFS="," read executable
do
"$executable"
done <testing.csv

关于linux - 如何从另一个 shell 脚本运行 shell 脚本,从 CSV 文件中读取第一个 shell 脚本名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52180732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com