gpt4 book ai didi

linux - shebangs 脚本在机器对机器中表现异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:00 25 4
gpt4 key购买 nike

我在一台 linux 机器上执行了下面的代码,它执行得很好,但是当我在另一台 linux 机器上执行时,它给出了如下错误

 Error:( declaration is not correct -- at line array=($@)
declare is not correct -- at line declare hash


code:
#! /bin/sh
STR="SSIDRADIO0=RUSSIA&SSIDRADIO1=JAPAN&COUNTRY=TH&RADIOB=1&RADIOA=0&TXPOWERRADIO0=8&TXPOWERRADIO1=12&RADIOBCHAN=3&RADIOACHAN=60&PUBLISHSSIDRADIO0=1&PUBLISHSSIDRADIO1=1&SUPPORTEDTXRATERADIO0=12&SUPPORTEDTXRATERADIO1=18&REFRESHRATE=2000&INACTPERIOD=600"
IFS='&'
set -- $STR
array=($@)
declare hash
for i in "${array[@]}"; do IFS="=" ; set -- $i; hash[$1]=$2; echo ${hash[$1]} >>help;done

请帮帮我

最佳答案

问题是 sh 通常软链接(soft link)到特定的 shell。即使上下文发生变化,它也会发生变化。在 Ubuntu 中,当您启动交互式 shell 时,sh 是 bash,如果您启动脚本,则为 dash。当我从 10.04 切换到 12.04 时,我所有的 sh shebanged 脚本都失败了!正如 user2864740 在评论中指出的那样,您可能遇到版本问题。

一个解决方案是在 shebang 中使用特定的 shell,如 /bin/bash 显式。另一个是让你的脚本适用于你可能遇到的所有 shell 版本/风格 ^^

关于linux - shebangs 脚本在机器对机器中表现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22218817/

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