Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅当计算机上存在bash shell时才使用/(更改为)_Bash - Fatal编程技术网

仅当计算机上存在bash shell时才使用/(更改为)

仅当计算机上存在bash shell时才使用/(更改为),bash,Bash,我正在使用.login文件在登录时更改shell并进行其他修改 如果我尝试从这台机器ssh到另一台没有bash(有tcsh)的机器(使用可共享配置文件),我将得到一个错误,并且连接已关闭 如何检查bash是否存在,只有在存在时才进行更改。在执行它之前只需测试它是否存在。例如: test -x /bin/bash && exec /bin/bash -l sshuser@host-tt'sh-c“test-x/bin/bash&&exec/bin/bash-l” -tt=强制分配

我正在使用
.login
文件在登录时更改shell并进行其他修改

如果我尝试从这台机器
ssh
到另一台没有bash(有tcsh)的机器(使用可共享配置文件),我将得到一个错误,并且连接已关闭


如何检查bash是否存在,只有在存在时才进行更改。

在执行它之前只需测试它是否存在。例如:

test -x /bin/bash && exec /bin/bash -l

sshuser@host-tt'sh-c“test-x/bin/bash&&exec/bin/bash-l”

-tt
=强制分配终端


您还可以在远程计算机上检查bash是否允许作为
/etc/shells/

chsh中的登录shell-l将列出您可用的shell错误消息是什么?@Raman,在哪个
chsh
实现上?对于作为util-linux-2.23.2-43.el7_4.2.x86_64一部分的
passwd
version 4.7.chsh中的标志,它当然不是公认的标志