linux - 列出命令不显示所有输出
问题描述
尝试在具有其他人的公共 ssh 密钥的机器上使用 bash 连接到多台机器,并在它们上运行命令以在这台机器上显示输出。如果我在执行脚本时使用下面代码中的' $a '变量,我会得到这个未完成的输出
bash: total: command not found
bash: line 1: drwxr-xr-x: command not found
bash: line 2: drwxr-xr-x: command not found
bash: line 3: -rw-r--r--: command not found
bash: line 5: -rwxr-xr-x: command not found
....
但是,如果我使用注释块而不调用$a变量,则 bash 会打印命令的正确输出。
执行的代码:
#!/bin/bash
a=$(ls -lah)
for i in "machine1" "machine2"
do ssh root\@"$i" "$a; exit;"
*#do ssh root\@"$i" "ls -lah; exit;" - displays accordingly*
done
解决方案
您的代码不起作用,因为a=$(ls -lah)
将ls -lah
's 输出分配给 variable a
。改成这样a='ls -lah'
就OK了。
请参阅 bash 手册中的命令替换部分
推荐阅读
- css - 将 GRID 中最后一行的剩余项目居中 (1fr 1fr)
- ftp - FireZilla:没有可用的受支持的身份验证方法(服务器发送:公钥)
- java - 如何完成我的编码和解码程序?
- huawei-mobile-services - Android 10及以上的后台定位界面是否支持连续获取位置信息?
- python-3.x - pyshark中的decryption_key过滤器
- testing - 如何测试 GitLab CI/CD 管道
- c - Makefile 没有创建目录
- c - 我不确定如何使用 strtok 来分隔标记
- python - pyqt5 QTreeWidget 实现类似于 filesystemmodel
- python - 通过python中的自定义比较器对元组列表进行排序