Questions tagged «scripts»

脚本是写在“纯文本”文件中的一系列指令。脚本解释器(例如Bash或其他Shell,Python,Perl,Ruby等)读取文件并执行指令,就像在命令提示符下输入了指令一样。

4
创建一个.desktop文件,该文件将在终端中打开并执行命令
我想知道如何编写Exec.desktop文件的命令来打开一个新终端并在其中执行shell脚本。Shell脚本正在运行,并且所有用户都可以访问。从终端启动脚本时,一切正常,但尝试从.desktop文件启动脚本时,一切正常。 这是我已经尝试过的一些组合: Exec=gnome-terminal -x sh -c 'echo hello' Exec=sh -c 'gnome-terminal echo hello' Exec=sh -c 'echo hello' Exec=echo hello .desktop终端选项设置为true。


6
如何编写应用程序安装外壳脚本?
有谁知道如何编写Shell脚本来安装应用程序列表?每当我设置新系统时,都必须手动安装每个应用程序,这是一个痛苦。 编辑: 它仍然问我Do you want to continue [Y/n]?。有没有办法让脚本输入y或不提示输入?


2
毕竟,bash中的“。”和“源”之间有区别吗?
我一直在寻找“。”之间的区别。和“源”内置命令以及一些源(例如,在本讨论中以及bash手册页中)表明它们是相同的。 但是,在环境变量出现问题之后,我进行了测试。我创建了一个testenv.sh包含以下内容的文件: #!/bin/bash echo $MY_VAR 在命令提示符下,我执行了以下操作: > chmod +x testenv.sh > MY_VAR=12345 > ./testenv.sh > source testenv.sh 12345 > MY_VAR=12345 ./testenv.sh 12345 [请注意第一种形式返回一个空字符串] 所以,这个小实验表明,有是毕竟有差别,其中的“源”命令,孩子的环境继承所有从父之一,这里的变量“” 它不是。 我是否缺少某些东西,或者这是bash的未记录/不推荐使用的功能? [GNU bash,版本4.1.5(1)-发行(x86_64-pc-linux-gnu)]



2
如何显示文件的修改时间?
我想要一种方法来查找和打印文件的修改时间,以供在bash脚本中使用。 我想出了: ls -l $filename | cut -d ' ' -f '6-8' 哪个输出: Jul 26 15:05 尽管我想避免解析ls,但将年份包含在其中也很有用。 理想情况下,我希望看到类似于date命令默认输出的输出。 Tue Jul 26 15:20:59 BST 2016 还有哪些其他有用的方法?

3
如何在不关闭终端的情况下杀死在终端中运行的脚本(Ctrl + C不起作用)?
我编写了一个bash脚本,该脚本调用其他几个程序并执行一堆命令。我从终端运行此脚本。现在我想杀死脚本。 Ctrl + C我认为有时按一下并不会削减它,因为有时脚本正在执行另一个程序,并且由于某种原因,kill信号不起作用。 但是,如果我关闭终端窗口,它将终止脚本。 有什么我可以做的(键盘组合),类似于关闭终端窗口,而无需实际关闭终端窗口(我不想丢失命令历史记录,当前目录,输出历史记录等)吗?
35 bash  scripts 


4
运行脚本时出现错误消息“来源:未找到”
我正在创建一个小的自动设置脚本,该脚本将进行修改,/etc/profile并且$HOME/.profile如果未导出某些路径。然后,我想自动重新加载它们。 我已经阅读过source此内容,因此我启动了终端并输入: source /etc/profile source ~/.profile 从终端,它没有输出任何错误。 但是,将这两个命令放在Bash脚本中会导致source: not found。 即使#!/bin/sh指定了脚本,我如何才能确保该脚本由Bash执行(显然,它不能保证)? 为什么会说这两个来源毫无疑问地找不到呢?

2
在Linux脚本中使用“边读边……”
有人可以解释下面的代码如何工作吗? echo '1 2 3 4 5 6' | while read a b c do echo $c $b $a done 具体来说,我想知道为什么这个循环的输出3 4 5 6 2 1,而不是3 2 1与6 5 4两个单独的行?我似乎无法全神贯注于此...
34 bash  scripts 


9
空格中断循环的文件名,find命令
我有一个脚本,可以搜索多个子文件夹中的所有文件并将其归档到tar。我的剧本是 for FILE in `find . -type f -name '*.*'` do if [[ ! -f archive.tar ]]; then tar -cpf archive.tar $FILE else tar -upf archive.tar $FILE fi done find命令为我提供以下输出 find . -type f -iname '*.*' ./F1/F1-2013-03-19 160413.csv ./F1/F1-2013-03-19 164411.csv ./F1-FAILED/F2/F1-2013-03-19 154412.csv ./F1-FAILED/F3/F1-2011-10-02 212910.csv ./F1-ARCHIVE/F1-2012-06-30 004408.csv ./F1-ARCHIVE/F1-2012-05-08 190408.csv 但是FILE变量仅存储路径./F1/F1-2013-03-19的第一部分,然后存储下一部分160413.csv。 我尝试过使用readwhile循环, …
34 bash  scripts  find 

6
从终端旋转图像
我的目录中包含很多图像,但是它们的方向错误。我想将图像旋转到正确的方向(大多数为±90 o)。使用图像(shotwell照片)查看器,我可以通过单击“旋转”按钮分别旋转它们,但这太繁琐了。 我看了看man shotwell,并shotwell --help-all但没有什么解释如何从命令行调用旋转命令。 有什么方法可以从终端调用Shotwell(或任何其他查看器)的旋转命令?或者也欢迎任何其他旋转图像的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.