草庐IT

nix-shell

全部标签

linux - 如何评估 bash shell 中的给定路径

是否有一个bash命令将文件路径作为输入并返回绝对文件路径?更具体地说,我想要一个将路径作为输入的命令,例如:/tmp/yaneeve/kit/linux/../../output/kit/SOURCES//usr//apps/myapp/lib并返回路径:/tmp/yaneeve/output/kit/SOURCES/usr/apps/myapp/lib谢谢! 最佳答案 如果路径存在,则有一种可移植的方式(即使在linux上)更可靠:canonicalPath=$(cd"$path";pwd)

linux - 如何评估 bash shell 中的给定路径

是否有一个bash命令将文件路径作为输入并返回绝对文件路径?更具体地说,我想要一个将路径作为输入的命令,例如:/tmp/yaneeve/kit/linux/../../output/kit/SOURCES//usr//apps/myapp/lib并返回路径:/tmp/yaneeve/output/kit/SOURCES/usr/apps/myapp/lib谢谢! 最佳答案 如果路径存在,则有一种可移植的方式(即使在linux上)更可靠:canonicalPath=$(cd"$path";pwd)

linux - 将变量传递给 shell 中的 grep

这个问题在这里已经有了答案:grepforexpressioncontainingvariable(2个答案)关闭9年前。我编写了以下shell来计算以“AvalABvalB”模式开头的行数。但是,我认为我没有正确传递变量。有什么帮助解决这个问题吗?foriin{0..16};doforjin{0..16};doechoA$iB$jgrep'^A:"$i"B:"$j"'file|wc-ldonedone

linux - 将变量传递给 shell 中的 grep

这个问题在这里已经有了答案:grepforexpressioncontainingvariable(2个答案)关闭9年前。我编写了以下shell来计算以“AvalABvalB”模式开头的行数。但是,我认为我没有正确传递变量。有什么帮助解决这个问题吗?foriin{0..16};doforjin{0..16};doechoA$iB$jgrep'^A:"$i"B:"$j"'file|wc-ldonedone

linux - shell 脚本如何判断它是否在支持 256 色的 xterm 窗口中运行?

我正在编写一个shell脚本,我想在存在时使用256色支持。在一个公正的世界中,xterm会简单地将TERM环境变量设置为xterm-256color而我会使用tputcolors来发现支持。但我们生活在一个不公正的世界。xterm将TERM设置为xterm,即使在使用TERM=xterm-256color启动时也是如此。我可以从shell脚本中做些什么来发现脚本是否正在运行,stdout连接到在256色xterm窗口中运行的tty?如果是这样,我可以自己设置环境变量。 最佳答案 您可以检查xterm版本-$XTERM_VERSIO

linux - shell 脚本如何判断它是否在支持 256 色的 xterm 窗口中运行?

我正在编写一个shell脚本,我想在存在时使用256色支持。在一个公正的世界中,xterm会简单地将TERM环境变量设置为xterm-256color而我会使用tputcolors来发现支持。但我们生活在一个不公正的世界。xterm将TERM设置为xterm,即使在使用TERM=xterm-256color启动时也是如此。我可以从shell脚本中做些什么来发现脚本是否正在运行,stdout连接到在256色xterm窗口中运行的tty?如果是这样,我可以自己设置环境变量。 最佳答案 您可以检查xterm版本-$XTERM_VERSIO

linux - 通过标准输入从 shell 脚本提交多个文件

我有一个程序,当从命令行调用时,它从标准输入中读取。通常用户会输入一些信息,在新行上按C-d以表示文件结束,然后程序会处理该文件。然后用户会再次收到提示,输入更多文本,然后再次按C-d表示第二个文件结束。我正在寻找一个shell脚本来调用这个程序并自动提交这两个文件。我想做这样的事情:$myprogram或$myprogam有什么建议吗?我在Linux下使用bashshell。 最佳答案 显然,您可以使用cat将两个文件发送到程序标准输入,但这可能不是您想要的:$catfile1.txtfile2.txt|myprogram在上面的

linux - 通过标准输入从 shell 脚本提交多个文件

我有一个程序,当从命令行调用时,它从标准输入中读取。通常用户会输入一些信息,在新行上按C-d以表示文件结束,然后程序会处理该文件。然后用户会再次收到提示,输入更多文本,然后再次按C-d表示第二个文件结束。我正在寻找一个shell脚本来调用这个程序并自动提交这两个文件。我想做这样的事情:$myprogram或$myprogam有什么建议吗?我在Linux下使用bashshell。 最佳答案 显然,您可以使用cat将两个文件发送到程序标准输入,但这可能不是您想要的:$catfile1.txtfile2.txt|myprogram在上面的

java - 如何在 Linux shell 中接受左/右/上/下箭头输入?

我写了一个Java应用程序,它有一个while(input.readLine())持续读取输入,直到用户键入退出命令。我有一个.bat脚本可以在Windows中启动它,还有一个.sh可以在Linux中启动它。该应用程序在这两个方面都运行良好。而在Windows中,如果您键入“检查电子邮件”之类的命令并按回车键,它将执行该命令。然后,在下一个提示(即:下一次Java应用程序读取一行输入)时,您可以点击向上箭头,它会调用您的“检查电子邮件”命令。您可以按向左箭头键将光标向左移动等。这正是我想要的。然而,在Linux上,按下向上键会导致^[[D出现。左右箭头键产生类似的ASCII输出,如^[

java - 如何在 Linux shell 中接受左/右/上/下箭头输入?

我写了一个Java应用程序,它有一个while(input.readLine())持续读取输入,直到用户键入退出命令。我有一个.bat脚本可以在Windows中启动它,还有一个.sh可以在Linux中启动它。该应用程序在这两个方面都运行良好。而在Windows中,如果您键入“检查电子邮件”之类的命令并按回车键,它将执行该命令。然后,在下一个提示(即:下一次Java应用程序读取一行输入)时,您可以点击向上箭头,它会调用您的“检查电子邮件”命令。您可以按向左箭头键将光标向左移动等。这正是我想要的。然而,在Linux上,按下向上键会导致^[[D出现。左右箭头键产生类似的ASCII输出,如^[