Python 将多行bash脚本转换为单行
我正在尝试编写一个用于python代码的bash脚本 多行bash命令(直接从终端运行时,此命令非常有效) 缺少一个Python 将多行bash脚本转换为单行,python,python-3.x,linux,bash,shell,Python,Python 3.x,Linux,Bash,Shell,我正在尝试编写一个用于python代码的bash脚本 多行bash命令(直接从终端运行时,此命令非常有效) 缺少一个(致命语法错误): 更深入: 在单个命令中组合grep+awk 缺少一个(致命语法错误): 更深入: 在单个命令中组合grep+awk 执行此转换的一种方法可能是将脚本粘贴到命令行上,然后在历史记录中查找-尽管这可能取决于您拥有的命令行编辑器的版本。请注意,do之前需要分号,但后面不需要分号。你会因为分号太多和太少而受到惩罚 另一种方法是逐行折叠脚本中的每一行并继续测试它
代码>(致命语法错误):
更深入:
- 在单个命令中组合
grep+awk
缺少一个代码>(致命语法错误):
更深入:
- 在单个命令中组合
grep+awk
执行此转换的一种方法可能是将脚本粘贴到命令行上,然后在历史记录中查找-尽管这可能取决于您拥有的命令行编辑器的版本。请注意,do
之前需要分号,但后面不需要分号。你会因为分号太多和太少而受到惩罚
另一种方法是逐行折叠脚本中的每一行并继续测试它
二进制切分方法是执行前半部分,测试并撤消或继续
一旦您将脚本粘贴到一行,您就可以将其粘贴到python中。执行此转换的一种方法可能是将脚本粘贴到命令行上,然后在历史记录中查找-尽管这可能取决于您拥有的命令行编辑器的版本。请注意,do
之前需要分号,但后面不需要分号。你会因为分号太多和太少而受到惩罚
另一种方法是逐行折叠脚本中的每一行并继续测试它
二进制切分方法是执行前半部分,测试并撤消或继续
一旦你把它压缩到一行,你就可以把它粘贴到python中。而且,第一个分号不应该用引号括起来:mydatefile=“/var/tmp/date;”,
应该是mydatefile=“/var/tmp/date”;而
。顺便说一句,那些不带引号的变量引用($line
而不是“$line”
)是可疑的,而$(echo$line)
而不仅仅是“$line”
?还有,第一个分号不应该在引号中:mydatefile=“/var/tmp/date;”,
应该是mydatefile=“/var/tmp/date”;而
。顺便说一句,那些不带引号的变量引用($line
而不是“$line”
)是可疑的,$(echo$line)
而不是“$line”
?在进行这种转换时,只需用分号替换多行脚本中的每一行新行。(换行符和;
)都是语句分隔符。进行这种转换时,只需将多行脚本中的每一行换行符替换为分号即可。(换行符和;
)都是语句分隔符。
mydatefile="/var/tmp/date"
while IFS= read line
do
echo $line
sh /opt/setup/Script/EPS.sh $(echo $line) | grep "WORD" | awk -F ',' '{print $6}'
sleep 1
done <"$mydatefile"
mydatefile="/var/tmp/date;" while IFS= read line do echo $line; sh /opt/setup/Script/EPS.sh $(echo $line) | grep "WORD" | awk -F ',' '{print $6}'; sleep 1; done <"$mydatefile";
-bash: syntax error near unexpected token `done'
while IFS= read line; do echo ...
# ^
# here
mydatefile="/var/tmp/date"
while IFS= read line; do
echo "$line"
sh /opt/setup/Script/EPS.sh "$line" |
awk -F ',' '/WORD/{print $6}'
sleep 1
done < "$mydatefile"
mydatefile="/var/tmp/date;" while IFS= read line; do echo $line; sh /opt/setup/Script/EPS.sh "$line" | awk -F ',' '/WORD/{print $6}'; sleep 1; done < "$mydatefile";