shell文件报错 “[: XXXX: unexpected operator” 问题

问题

判断语句[]中写有 == 时,运行sh -x cal_birthday.sh时会报错:

cal_birthday.sh: 15: [: 0805: unexpected operator

程序中写了:

if [ "$date_now" == "$birthday" ]; then

解决方法

因为ubuntu默认的sh是连接到dash的,又因为dash跟bash的不兼容所以出错了,执行时可以把sh换成 ’ bash 文件名.sh ’ 来执行,成功。
dash是一种 Unix shell,它执行 shell scripts 的速度比bash快,需要的软件库也较少。貌似用户对它的诟病颇多。

修改sh默认连接到bash的一种方法:

sudo dpkg-reconfigure dash  

选择no 即可!

此链接下提供详细说明:https://blog.csdn.net/kevin_liu11/article/details/51822992

引用\[1\]中的代码报错是因为在`os.chdir()`函数中使用了`\`作为路径分隔符,但是`\`在Python中是转义字符,所以需要使用两个`\`来表示一个`\`。正确的写法应该是`os.chdir(time_year + "\\" + time_month + "\\" + time_day)`。 引用\[2\]中的代码报错是因为在`train_test_split()`函数的参数传递过程中使用了`\`作为换行符,但是在`\`后面不能有其他字符,比如空格或者注释。所以需要删除`\`后面的空格或注释。正确的写法应该是: ``` cancer_data_train, cancer_data_test, \ cancer_target_train, cancer_target_test = \ train_test_split(cancer_data, cancer_target, \ test_size=0.2, random_state=42) ``` 引用\[3\]中的代码报错是因为在`os.chdir()`函数中使用了`\`作为路径分隔符,但是`\`在Python中是转义字符,所以需要使用两个`\`来表示一个`\`。正确的写法应该是`os.chdir(time_year + "\\" + time_month + "\\" + time_day)`。 所以,报错`SyntaxError: unexpected character after line continuation character`是因为在使用`\`作为路径分隔符时没有正确处理转义字符的问题。 #### 引用[.reference_title] - *1* *3* [Python_报错:SyntaxError: unexpected character after line continuation character](https://blog.csdn.net/weixin_30800987/article/details/95579457)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python:出现SyntaxError: unexpected character after line continuation character解决方案](https://blog.csdn.net/m0_50707858/article/details/121232539)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大师兄电子工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值