gpt4 book ai didi

linux - 脚本与 ./file_name 一起工作,但是当我使用 sh file_name 启动它时出现错误

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

脚本与 ./file_name 一起工作,但是当我使用 sh file_name 启动它时出现错误

#!/bin/bash
echo "Scenarijus, kuris is teksto failo paima pirmoje eiluteje esancius zodzius ir sukuria naujus katalogus tokiais paciais pavadinimais, jusu pasirinktame kataloge"
echo " "
echo "Iveskite teksto faila is kurio norite paimti pirma eilute"
read failas
echo "Nurodykite kataloga kuriame noresite sukurti naujus katalogus"
read direktorija
mkdir -p $direktorija
read -a pavadinimai < "$failas"
for pavadinimas in "${pavadinimai[@]}"; do
mkdir "$direktorija/$pavadinimas"
done

当我使用 sh 启动脚本时出现错误:file_name: 9: 非法选项 -a filename: 10: filename: Bad substitution

最佳答案

当您直接执行脚本时,hashbang 行将被解析以供解释器使用。当您使用 #!/bin/bash 时,bash shell 将用于执行您的脚本,因此执行的命令是 /bin/bash ./file_name

Bash 为 sh 提供了一个超集命令,因此您可以在 bash 中运行 sh 脚本,但反之则不行。例如,在您的情况下,sh 的 read 命令不知道 bash 知道的 -a 参数。

使用 bash file_name 调用您的脚本,一切都应该没问题。

关于linux - 脚本与 ./file_name 一起工作,但是当我使用 sh file_name 启动它时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30094555/

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