gpt4 book ai didi

linux - 运行我的 shell 脚本时出现错误 "No such file or directory","command not found"

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:43 26 4
gpt4 key购买 nike

我的脚本内容

`sqlline.py tpxxx.entexxx.org <<END

!outputformat csv

!record /ap_data/DD3/Rawf/Raw_f_$1_$2.csv

select column1,column2,column3,column4 from DD3_vxxv_$1.DD3_vv_RAW_DATA where v_id=$3 and period=$4;

!record

!quit

END;`

`sed -i '1d;$d' /ap_data/DD3/Rawf/Raw_f_$1_$2.csv;

sed -i "s/'//g" /ap_data/DD3/Rawf/Raw_f_$1_$2.csv;

cd /ap_data/D2O/RawDownload/

zip Raw_f_$1_$2.zip Raw_f_$1_$2.csv;

scp Raw_f_$1_$2.zip txxx@daxxxx.entexxx.org:/opt/cdar/common/D2O/TabUpload/;

rm Raw_f_$1_$2.csv Raw_f_$1_$2.zip;`

在执行脚本时:

./rawfile.sh: line 7: 0/?: No such file or directory
./rawfile.sh: line 13: adding:: command not found

脚本给出了正确的输出。但是仍然显示错误“没有那个文件或目录”,“找不到命令”

我的文件权限是:-rwxrwxrwx

最佳答案

您的脚本在两个主要的可执行部分周围有反引号。

反引号导致其中的内容在子 shell 中执行并替换回您的脚本。这意味着在您的情况下,您的脚本正在执行两个命令。其中一个是第一个反引号表达式的输出,另一个是第二个反引号表达式的输出。

例如:

$ `echo hello`
bash: hello: command not found
$ `echo echo hello`
hello

这里发生的是第一个 echo 命令生成的输出被替换到您的命令行中,使 shell 评估的命令行只是“hello”.. 这不是命令。第二个命令行打印“echo hello”,这是一个有效的命令行并评估为打印“hello”的内容。

去掉两个主要语句周围的反引号,直接执行命令。

#!/bin/sh

sqlline.py tpxxx.entexxx.org <<END
!outputformat csv
!record /ap_data/DD3/Rawf/Raw_f_$1_$2.csv
select column1,column2,column3,column4 from DD3_vxxv_$1.DD3_vv_RAW_DATA where v_id=$3 and period=$4;
!record
!quit
END

sed -i '1d;$d' /ap_data/DD3/Rawf/Raw_f_$1_$2.csv
sed -i "s/'//g" /ap_data/DD3/Rawf/Raw_f_$1_$2.csv
cd /ap_data/D2O/RawDownload/
zip Raw_f_$1_$2.zip Raw_f_$1_$2.csv
scp Raw_f_$1_$2.zip txxx@daxxxx.entexxx.org:/opt/cdar/common/D2O/TabUpload/
rm Raw_f_$1_$2.csv Raw_f_$1_$2.zip

关于linux - 运行我的 shell 脚本时出现错误 "No such file or directory","command not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37047487/

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